读取.pdb文件

时间:2010-01-11 05:45:58

标签: file viewer pdb-files

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

任何可能知道如何打开它的人?

5 个答案:

答案 0 :(得分:42)

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

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

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

答案 1 :(得分:22)

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

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

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

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

cvdump Whatever.pdb

答案 2 :(得分:6)

PDB查看器(GUI)

Portable PDB

经典(非便携式)PDB

  • 工具
    1. llvm-pdbutilllvm-pdbutil dump -all Foo.pdb
    2. cvdumpcvdump Foo.pdb
    3. DBHdbh.exe -v Foo.pdb dump
    4. PDBStrpdbstr.exe -r -p:Foo.pdb -s:StreamName
  • 程序访问

答案 3 :(得分:5)

如今,我强烈推荐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项目。

答案 4 :(得分:3)

您可以使用Windows SDK中的DBH tool

&'C:\Program Files\Debugging Tools for Windows (x64)\dbh.exe' -v MySymbol.pdb dump