Eil*_*lon 42
如果你的意思是调试器使用的"程序数据库"中的PDB:
PDB文件包含有关文件的数据,例如用于帮助调试的EXE或DLL.有一些公共接口允许您从文件中提取数据.看这里的例子:
如果您的意思是在Palm Pilot数据库中使用PDB,那么我对此一无所知,但文件格式可在此处获得:
lam*_*345 24
Microsoft发布了其PDB格式的源代码,因此LLVM团队等其他编译器开发人员可以更轻松地实现PDB格式.
https://github.com/Microsoft/microsoft-pdb/
要实际转储文件的输出,只需使用:
https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe
cvdump Whatever.pdb
Run Code Online (Sandbox Code Playgroud)
Oha*_*der 11
工具
sourcelink print-urls Foo.pdb程序化访问
llvm-pdbutil dump -all Foo.pdbcvdump Foo.pdbdbh.exe -v Foo.pdb dumppdbstr.exe -r -p:Foo.pdb -s:StreamNamepip3 install pdbparse; pdb_dump.py Foo.pdb如今,我强烈建议LLVM的PDB解析器llvm-pdbutil。
它是一个出色的功能丰富的PDB转储程序,非常适合补充Microsoft的cvdump。
有关详细信息和文档,请参阅:
一些有用的入门命令:
llvm-pdbutil dump -all your.pdbllvm-pdbutil bytes -syms your.pdbllvm-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):
git clone https://github.com/llvm/llvm-project.gitcd llvm-projectmkdir build && cd buildset 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 ../llvmTools/llvm-pdbutil项目。您可以使用Windows SDK 中的DBH 工具。
&'C:\Program Files\Debugging Tools for Windows (x64)\dbh.exe' -v MySymbol.pdb dump
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79250 次 |
| 最近记录: |