PointerToSymbolTable调试信息:关于可执行文件与Windows
文件COFF符号 表的偏移或零,如果没有COFF符号表 存在。 PE图像 文件为0,因为调试信息是折旧的 。
为什么说调试信息会折旧用于PE映像? AFIAK,windows中的可执行文件也可以携带调试信息,是不是这种情况?
PointerToSymbolTable调试信息:关于可执行文件与Windows
文件COFF符号 表的偏移或零,如果没有COFF符号表 存在。 PE图像 文件为0,因为调试信息是折旧的 。
为什么说调试信息会折旧用于PE映像? AFIAK,windows中的可执行文件也可以携带调试信息,是不是这种情况?
注意确定你在哪里阅读,但在MSDN中this page没有这样的警告。
您需要记住MSDN在某种程度上是针对Microsoft的。在Microsoft世界中,coff调试信息早已被.PDB文件取代,因此当您使用Microsoft编译器时(因此PointerToSymbolTable
将始终为0),几乎从不会获得内部的可执行映像。
仍然有程序使用嵌入的COFF数据(例如MinGW,我相信)。
因为它说调试信息对于PE映像是折旧的,调试符号不会直接嵌入到PE中。它存储在保存调试信息的.PDB文件中。这个文件的格式没有记录,所以你只能通过调用DbgHelp.dll中的API来从这个文件中提取信息。
PE中调试符号的结构名称是什么? – COMer 2010-09-28 08:00:40