据我了解,Microsoft 的 Portable Executable 格式的 COFF 符号表用于存储导出、导入和调试符号。但是由于我们已经有一个 .edata、.idata 和 .debug 部分,为什么我们需要另一个这样的结构呢?
问问题
1652 次
1 回答
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)部分中。
于 2011-08-26T05:09:00.720 回答