将 DBG 转换为 PDB? [英] Convert DBG into PDB?
问题描述
我有一个 Win32 编译器,多年来,它一直能够创建一个 文件:
由于 Microsoft 保留 PDB 格式
它没有得到我任何东西 - 因为微软没有解释它意味着什么.
重点不只是查看 PDB - 我们需要创建一个.为此,我们需要知道:
- 里面有什么
- 哪里
- 以及什么格式
LLVM 开发人员 记录了 PDB文件格式以使clang和lld能够读取和生成PDB文件.Microsoft 的 PDB Github 存储库 的建立部分是为了支持这项工作.
PDB 主要是 Microsoft 记录的 CodeView 调试信息的容器.
LLVM 提供用于处理 PDB 和 COFF 调试信息的库,以及用于检查和从 YAML 生成它们的命令行工具.
i have a Win32 compiler which, for years, has been able to create a DBG debug information file.
This has allowed debuggers, and tools like Process Explorer and Process Monitor to have access to symbol information:
i recently learned that Visual Studio's debugger no longer accepts DBG files, only undocumented Program Database (PDB) files:
Since Microsoft keeps the PDB format secret, i assume they have a tool that will allow me to convert existing debugging information to a PDB (so i don't learn the secrets of their file format).
Bonus Reading
Undocumented
Even though Microsoft has a GitHub repository for PDB, the spec remains completely undocumented. The files on their repository are incomplete. There are missing types and declarations.
And even though i've created a PDBViewer:
It doesn't get me anything - because Microsoft doesn't explain what any of it means.
The point isn't just to look at a PDB - we need to create one. And for that we need to know:
- what goes in it
- where
- and what format
LLVM developers documented the PDB file format in order to make clang and lld able to read and produce PDB files. Microsoft's PDB Github repository was put up, in part, to support that work.
PDB is primarily a container for CodeView debug info, which is documented by Microsoft.
LLVM provides libraries for working with PDBs and COFF debug info, as well as command line tools for inspecting and generating them from YAML.
这篇关于将 DBG 转换为 PDB?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!