符号文件

通常,调试信息存储在与可执行文件分开的符号文件中。 多年来,此调试信息的实现已经发生了变化,以下文档将提供有关这些各种实现的指导。

PDB 文件

所有现代版本的 Microsoft 编译器都将有关已编译可执行文件的调试信息存储在单独的程序数据库 (.pdb) 文件中。 该文件通常称为 PDB。 数据存储在与可执行文件分开的文件中,以帮助限制可执行文件的大小,节省磁盘存储空间并减少加载数据所需的时间。 此方法还允许分发可执行文件而不披露此重要信息,从而使程序更易于反向工程。

要创建 PDB,请根据生成工具的说明生成带有调试信息的可执行文件。

DbgHelp API 能够使用 PDB 获取以下信息。

  • 公共和导出
  • 全局符号
  • 本地符号
  • 类型数据
  • 源文件
  • 行号

DBG 文件和嵌入式调试信息

以前版本的 Microsoft 工具集用于将调试信息嵌入到可执行文件中,但通常会将其剥离到扩展名为 .dbg 的单独文件中。 这通常被称为 DBG 文件。 DBG 文件使用与可执行文件相同的 PE 文件格式。

DbgHelp API 对 DBG 和嵌入式调试信息的支持是有限的,包括以下内容。

  • 公共和导出
  • 全局符号