据我所知,Microsoft的Portable Executable格式的COFF符号表用于存储导出,导入和调试符号。但是,由于我们已经有一个.edata,.idata和.debug部分,为什么我们需要另一个这样的结构?
答案 0 :(得分:3)
见这里:http://msdn.microsoft.com/en-us/library/ms809762.aspx
“[COFF符号表]仅用于带有COFF调试信息的OBJ文件和PE文件。”
“.rdata部分至少用于两件事。[...](在TLINK32 EXE中,调试目录位于名为.debug的部分中。)[...]出现三种主要类型的调试信息:CodeView®,COFF和FPO。“
“当有更完整的CodeView信息可用时,为什么有人需要COFF调试信息?如果你打算使用Windows NT系统调试器(NTSD)或Windows NT内核调试器(KD),COFF是唯一的游戏镇“。
换句话说,COFF符号表仅用于调试,仅用于更原始的调试器,通常放在.debug(或.rdata)部分内。