2010-09-21 55 views
0

PointerToSymbolTable调试信息:关于可执行文件与Windows

文件COFF符号 表的偏移或零,如果没有COFF符号表 存在。 PE图像 文件为0,因为调试信息是折旧的 。

为什么说调试信息会折旧用于PE映像? AFIAK,windows中的可执行文件也可以携带调试信息,是不是这种情况?

回答

0

注意确定你在哪里阅读,但在MSDN中this page没有这样的警告。

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

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

+0

PE中调试符号的结构名称是什么? – COMer 2010-09-28 08:00:40

1

因为它说调试信息对于PE映像是折旧的,调试符号不会直接嵌入到PE中。它存储在保存调试信息的.PDB文件中。这个文件的格式没有记录,所以你只能通过调用DbgHelp.dll中的API来从这个文件中提取信息。

相关问题