私は.pdb形式のファイルをたくさん持っていますが、そのうちのいくつかはダウンロードしましたが、今までは中身を使用したり読んだりすることができませんでした。
開け方を知っている人はいますか?
デバッガーが使用する「プログラムデータベース」のようにPDBを意味する場合:
PDBファイルには、EXEやデバッグに役立つDLLなどのファイルに関するデータが含まれています。ファイルからデータを抽出できるパブリックインターフェイスがあります。例を参照してください。
Palm PilotデータベースのようにPDBを意味する場合、私はそれについて何も知りませんが、ファイル形式はここで利用可能です:
MicrosoftはPDB形式のソースコードをリリースしたため、LLVMチームなどの他のコンパイラ開発者はPDB形式を簡単に実装できます。
https://github.com/Microsoft/microsoft-pdb/
実際にファイルの出力をダンプするには、これを使用します:
https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe
cvdump Whatever.pdb
現在、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の場合):
git clone https://github.com/llvm/llvm-project.git
_cd llvm-project
_mkdir build && cd build
_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
_Tools/llvm-pdbutil
_プロジェクトをビルドします。Windows SDKの DBHツール を使用できます。
&'C:\Program Files\Debugging Tools for Windows (x64)\dbh.exe' -v MySymbol.pdb dump