Windows のポータブル実行可能形式にシンボル テーブルが含まれていることを読みました。コンパイルのセマンティック解析フェーズ中およびコード生成中にシンボル テーブルが必要になる理由を理解しています。しかし、この段階でアドレスがアセンブリ コードにマップされているため、最終的な実行可能ファイル自体にシンボル テーブルを含める必要がある理由がわかりません。私は何が欠けていますか??
1 に答える
3
PE について具体的に話すことはできませんが、2 つの異なるシンボル テーブルがある ELF の状況に似ていると思います。
- 「通常の」シンボル テーブル (通常は「シンボル テーブル」と呼ばれるもの) は、最終的な実行可能ファイルではオプションです。存在する場合は、シンボリック情報を使用してプログラムを検査するデバッガーやその他のプログラムによって使用されます。通常はリンカによって生成されますが、ファイル サイズを小さくするために後で取り除くことができます。
- 動的シンボル テーブルは、実行時に DSO に対するリンクに使用されるため、動的リンクを使用する実行可能ファイルに存在する必要があります。ただし、実行可能ファイルが必要とする(または公開したい、これも可能です)外部シンボルのみをリストします。リンク中にその中に存在していたすべてのシンボルではありません。
于 2015-05-16T05:47:45.617 に答える