web-dev-qa-db-fra.com

Lecture d'un fichier .pdb

J'ai beaucoup de fichiers au format .pdb, certains téléchargés, mais jusqu'à présent, je ne peux pas utiliser ou lire ce qui se trouve à l'intérieur, donc je cherche comment lire et afficher le format de fichier .pdb à partir de MS Windows XP.

L'un de vous qui sait l'ouvrir?

23
jones

Si vous voulez dire PDB comme dans une "base de données de programme" que le débogueur utilise:

Les fichiers PDB contiennent des données sur un fichier tel qu'un EXE ou DLL qui est utilisé pour faciliter le débogage. Il existe des interfaces publiques qui vous permettent d'extraire des données du fichier. Voir des exemples ici:

Si vous voulez dire PDB comme dans une base de données Palm Pilot, je n'en sais rien, mais le format de fichier est disponible ici:

42
Eilon

Microsoft a publié le code source de leurs formats PDB, afin que d'autres développeurs de compilateurs comme l'équipe LLVM puissent implémenter le format PDB plus facilement.

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

Pour vider réellement la sortie d'un fichier, utilisez simplement ceci:

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

cvdump Whatever.pdb
22
lama12345

De nos jours, je recommande fortement l'analyseur PDB de LLVM, llvm-pdbutil.

C'est un excellent dumper PDB riche en fonctionnalités et idéal pour compléter le cvdump de Microsoft.
Pour plus de détails et de documentation, voir:

Quelques commandes utiles pour commencer:

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

Obtenir llvm-pdbutil:

Selon LLVM 7.0.0, la dernière version officielle, llvm-pdbutil.exe N'est pas distribué avec les binaires LLVM, il doit donc être construit à partir des sources.

Cependant, si vous êtes d'accord avec un binaire Windows 64 bits non officiel, mes versions llvm-pdbutil maison sont disponibles ici (notez que Visual C++ 2015 Redistributable est requis):

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

Construction de llvm-pdbutil:

Pour construire llvm-pdbutil à partir de la source sur Windows, vous devrez obtenir et configurer la construction LLVM. Suivez les instructions sur https://llvm.org/docs/GettingStarted.html .

Il y a cependant quelques ajouts nécessaires pour le support PDB. Pour résumer (pour VS 2017):

  • Clonez le référentiel LLVM: git clone https://github.com/llvm/llvm-project.git
  • cd llvm-project
  • mkdir build && cd build
  • S'il ne s'exécute pas à partir de la console 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
  • Dans Visual Studio, générez le projet Tools/llvm-pdbutil.
6
valiano

Vous pouvez utiliser outil DBH à partir du SDK Windows.

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