34

我有很多 .pdb 格式的文件,其中一些已下载,但直到现在我无法使用或读取其中的内容,所以我正在寻找如何从 MS Windows XP 读取和查看 .pdb 文件格式。

有知道怎么打开的吗?

4

5 回答 5

45

如果您的意思是 PDB 在调试器使用的“程序数据库”中:

PDB 文件包含有关用于帮助调试的文件(例如 EXE 或 DLL)的数据。有一些公共接口允许您从文件中提取数据。请参阅此处的示例:

如果您指的是 Palm Pilot 数据库中的 PDB,那么我对此一无所知,但文件格式可在此处获得:

于 2010-01-11T06:00:03.673 回答
32

微软发布了他们的 PDB 格式的源代码,因此其他编译器开发人员(如 LLVM 团队)可以更轻松地实现 PDB 格式。

https://github.com/Microsoft/microsoft-pdb/

要实际转储文件的输出,只需使用以下命令:

https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe

cvdump Whatever.pdb
于 2016-05-29T15:07:53.090 回答
19

PDB 查看器 (GUI)

便携式 PDB

经典(非便携式)PDB

于 2020-01-30T15:07:43.713 回答
11

现在,我强烈推荐 LLVM 的 PDB 解析器llvm-pdbutil

它是一个出色且功能丰富的 PDB 转储程序,非常适合补充 Microsoft 的 cvdump。
有关详细信息和文档,请参阅:

一些有用的入门命令:

  • llvm-pdbutil dump -all your.pdb
  • llvm-pdbutil bytes -syms your.pdb
  • llvm-pdbutil -help

获取 llvm-pdbutil:

根据最新的官方版本 LLVM 7.0.0,llvm-pdbutil.exe它不随 LLVM 二进制文件一起分发,因此必须从源代码构建。

但是,如果您可以使用非官方的 Windows 64 位二进制文​​件,我的自制 llvm-pdbutil 版本可在此处获得(注意需要 Visual C++ 2015 Redistributable):

https://github.com/shaharv/llvm-pdbutil-builds/releases

构建 llvm-pdbutil:

要在 Windows 上从源代码构建 llvm-pdbutil,您必须获取并设置 LLVM 构建。按照https://llvm.org/docs/GettingStarted.html上的说明进行操作。

不过,对于 PDB 支持,还有一些必要的补充。总结一下(对于 VS 2017):

  • 克隆 LLVM 存储库:git clone https://github.com/llvm/llvm-project.git
  • cd llvm-project
  • mkdir build && cd build
  • 如果不是从 Visual Studio 控制台运行:set VSINSTALLDIR=c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\.
  • cmake -G "Visual Studio 15 2017" -A x64 -Thost=x64 -DLLVM_ENABLE_DIA_SDK=ON ../llvm
  • 在 Visual Studio 中,构建Tools/llvm-pdbutil项目。
于 2019-02-05T19:18:07.070 回答
6

您可以使用 Windows SDK 中的DBH 工具

&'C:\Program Files\Debugging Tools for Windows (x64)\dbh.exe' -v MySymbol.pdb dump
于 2018-10-17T14:15:35.453 回答