I have a lot of files in .pdb format, some of them downloaded, but until now I can\'t use or read what\'s inside, so I\'m looking for how to read and view the .pdb file form
Nowadays, I highly recommend LLVM's PDB parser, llvm-pdbutil.
It is an excellent and feature rich PDB dumper and great to complement Microsoft's cvdump.
For details and documentation, see:
Some useful commands for getting started:
llvm-pdbutil dump -all your.pdbllvm-pdbutil bytes -syms your.pdbllvm-pdbutil -helpGetting llvm-pdbutil:
As per LLVM 7.0.0, the latest official release, llvm-pdbutil.exe is not distributed with the LLVM binaries, so it has to be built from source.
However, if you're OK with a non official, Windows 64-bit binary, my home-brewed llvm-pdbutil builds are available here (note Visual C++ 2015 Redistributable is required):
https://github.com/shaharv/llvm-pdbutil-builds/releases
Building llvm-pdbutil:
For building llvm-pdbutil from source on Windows, you'll have to get and setup LLVM build. Follow the instructions on https://llvm.org/docs/GettingStarted.html.
There are some needed additions for PDB support, though. To summarize (for 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 project.Tools
sourcelink print-urls Foo.pdbProgrammatic Access
llvm-pdbutil dump -all Foo.pdbcvdump Foo.pdbdbh.exe -v Foo.pdb dumppdbstr.exe -r -p:Foo.pdb -s:StreamNameYou can use the DBH tool from Windows SDK.
&'C:\Program Files\Debugging Tools for Windows (x64)\dbh.exe' -v MySymbol.pdb dump
Microsoft released the source code of their PDB formats, so other compiler developers like the LLVM team can implement the PDB format easier.
https://github.com/Microsoft/microsoft-pdb/
To actually dump the output of a file, just use this:
https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe
cvdump Whatever.pdb
If you mean PDB as in a "program database" that the debugger uses:
PDB files contain data about a file such as an EXE or DLL that is used to aid in debugging. There are public interfaces that allow you to extract data from the file. See examples here:
If you mean PDB as in a Palm Pilot Database, then I know nothing about it, but the file format is available here: