通常,调试信息存储在独立于可执行文件的符号文件中。 多年来,此调试信息的实现发生了变化,以下文档将提供有关这些各种实现的指导。
PDB 文件
Microsoft编译器的所有新式版本将有关编译的可执行文件的调试信息存储在单独的 程序数据库 (.pdb) 文件中。 此文件通常称为 PDB。 数据存储在与可执行文件分开的文件中,以帮助限制可执行文件的大小,节省磁盘空间并减少加载数据所需的时间。 此方法还允许分发可执行文件,而不会披露这一重要信息,从而使程序更易于反向工程。
若要创建 PDB,请根据生成工具的说明使用调试信息生成可执行文件。
DbgHelp API 能够使用 PDB 获取以下信息。
- 公共和导出
- 全局符号
- 本地符号
- 类型数据
- 源文件
- 行号
DBG 文件和嵌入式调试信息
用于在可执行文件中嵌入调试信息的Microsoft工具集的早期版本,但通常会将其剥离到具有 .dbg 扩展名的单独文件中。 这通常称为 DBG 文件。 DBG 文件使用与可执行文件相同的 PE 文件格式。
DBG 和嵌入式调试信息的 DbgHelp API 支持受到限制,包括以下内容。
- 公共和导出
- 全局符号