0

指针到符号表

COFF 符号表的文件偏移量,如果不存在 COFF 符号表,则为零。PE 映像文件为 0,因为调试信息已被贬低。

为什么它说 PE 映像的调试信息已贬值?AFIAK,windows中的可执行文件也可以携带调试信息,不是这样吗?

4

2 回答 2

1

正如它所说的 PE 映像的调试信息已被贬低,调试符号不再直接嵌入到 PE 中。而是存储在包含调试信息的 .PDB 文件中。该文件的格式未记录,因此您只能通过调用 DbgHelp.dll 中的 API 从该文件中提取信息。

于 2011-05-23T04:32:20.690 回答
0

请注意您是从哪里读到的,但是MSDN 中的这个页面没有这样的警告。

您需要记住,MSDN 在某种程度上是特定于 Microsoft 的。在 Microsoft 世界中,coff 调试信息早已被 .PDB 文件取代,因此当您使用 Microsoft 编译器时,您几乎永远不会在可执行映像中获得符号因此PointerToSymbolTable始终为 0)。

仍然有使用嵌入式 COFF 数据的程序(例如 MinGW,我相信)。

于 2010-09-21T04:34:16.907 回答