【问题标题】:About executable with debug information in windows关于 Windows 中带有调试信息的可执行文件
【发布时间】:2010-09-21 04:20:14
【问题描述】:

PointerToSymbolTable

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

为什么它说调试信息对于 PE 映像已贬值? AFIAK,windows中的可执行文件也可以携带调试信息,是不是这样?

【问题讨论】:

    标签: debug-symbols portable-executable


    【解决方案1】:

    正如它所说的 PE 映像的调试信息已被贬低,调试符号不再直接嵌入到 PE 中。而是存储在包含调试信息的 .PDB 文件中。该文件的格式未记录,因此您只能通过调用 DbgHelp.dll 中的 API 来从该文件中提取信息。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • PE 中调试符号的结构名称是什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 2014-08-16
      • 2019-11-22
      • 2022-07-16
      • 1970-01-01
      相关资源
      最近更新 更多