将 DBG 转换为 PDB? [英] Convert DBG into PDB?

查看:25
本文介绍了将 DBG 转换为 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆