我有一个Win32编译器,多年来一直能够创建一个DBG调试信息文件。
这允许调试器以及Process Explorer和Process Monitor等工具访问符号信息:

最近我了解到Visual的调试器不再接受DBG文件,只接受无文档的(PDB)文件:

由于微软保留PDB格式的秘密,所以我假设他们有一个工具,允许我将现有的调试信息转换为PDB (所以我不了解它们的文件格式的秘密)。
奖金阅读
无证
尽管微软有一个用于PDB的GitHub存储库,但规范仍然是完全没有文档的。其存储库中的文件是不完整的。缺少类型和声明。
尽管我已经创建了一个PDBViewer:

并没有给 me带来任何东西--因为微软并没有解释的任何一种含义--。
重点不只是查看PDB --我们需要创建 one。为此,我们需要知道:
发布于 2012-02-13 14:31:03
PDB没有文档化,但您可以使用适当的接口见样品,以编程方式收集有关PDB文件内容的详细信息。
发布于 2020-03-16 06:19:21
现在,PDB格式已被Microsoft 在GitHub存储库中记录在案。LLVM也有一个伟大的概述,部分基于微软的文档。
这不是一个完整的答案,因为你仍然需要编写工具来完成转换.
发布于 2020-03-16 15:04:16
LLVM开发人员为了使记录PDB文件格式和lld能够读取和生成PDB文件。微软的PDB Github存储库的提出部分是为了支持这项工作。
PDB主要是CodeView调试信息的容器,这是由微软记录的。
LLVM提供了用于处理PDB和COFF调试信息的库,以及用于从YAML检查和生成它们的命令行工具。
https://stackoverflow.com/questions/9250379
复制相似问题