私が理解している限りでは、Microsoft のポータブル実行可能形式の COFF シンボル テーブルは、エクスポート、インポート、およびデバッグ シンボルを格納するために使用されます。しかし、目的のために .edata、.idata、および .debug セクションが既にあるのに、なぜそのような別の構造が必要なのでしょうか?
1652 次
1 に答える
3
ここを参照してください: http://msdn.microsoft.com/en-us/library/ms809762.aspx
「[COFF シンボル テーブル] は、COFF デバッグ情報を含む OBJ ファイルと PE ファイルでのみ使用されます。」
「.rdata セクションは、少なくとも 2 つの目的で使用されます。[...] (TLINK32 EXE では、デバッグ ディレクトリは .debug という名前のセクションにあります。) [...] 3 つの主なタイプのデバッグ情報が表示されます。CodeView® 、COFF、および FPO です。」
「はるかに完全な CodeView 情報が入手できるのに、なぜ COFF デバッグ情報が必要になるのでしょうか? Windows NT システム デバッガー (NTSD) または Windows NT カーネル デバッガー (KD) を使用する場合、COFF は町で唯一のゲームです。」
言い換えると、COFF シンボル テーブルは、デバッグのみ、より基本的なデバッガーのみに使用され、通常は .debug (または .rdata) セクション内に配置されます。
于 2011-08-26T05:09:00.720 に答える