关于Windows中的调试信息的可执行文件

时间:2010-09-21 04:20:15

标签: debug-symbols portable-executable

PointerToSymbolTable

  

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

为什么说PE图像的调试信息折旧? AFIAK,Windows中的可执行文件也可以携带调试信息,是不是这样呢?

2 个答案:

答案 0 :(得分:1)

正如PE图像所说的调试信息折旧一样,调试符号不再直接嵌入到PE中。它存储在一个保存调试信息的.PDB文件中。此文件的格式未记录,因此您只能通过调用DbgHelp.dll中的API来从此文件中提取信息。

答案 1 :(得分:0)

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

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

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