Een .pdb-bestand lezen

Ik heb veel bestanden in .pdb-indeling, sommige zijn gedownload, maar tot nu toe kan ik de inhoud niet gebruiken of lezen, dus ik ben op zoek naar hoe ik de .pdb-bestandsindeling van MS kan lezen en bekijken Windows XP.

Iemand van jullie die misschien weet hoe je het moet openen?


Antwoord 1, autoriteit 100%

Als je PDB bedoelt zoals in een “programmadatabase” die de debugger gebruikt:

PDB-bestanden bevatten gegevens over een bestand, zoals een EXE of DLL, dat wordt gebruikt om te helpen bij het opsporen van fouten. Er zijn openbare interfaces waarmee u gegevens uit het bestand kunt extraheren. Bekijk hier voorbeelden:

Als je PDB bedoelt zoals in een Palm Pilot Database, dan weet ik er niets van, maar het bestandsformaat is hier beschikbaar:


Antwoord 2, autoriteit 70%

Microsoft heeft de broncode van hun PDB-formaten vrijgegeven, zodat andere compilerontwikkelaars zoals het LLVM-team het PDB-formaat gemakkelijker kunnen implementeren.

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

Om de uitvoer van een bestand daadwerkelijk te dumpen, gebruik je dit:

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

cvdump Whatever.pdb

Antwoord 3, autoriteit 22%

Tegenwoordig raad ik de PDB-parser van LLVM ten zeerste aan, llvm-pdbutil.

Het is een uitstekende PDB-dumper met veel functies en een geweldige aanvulling op de cvdump van Microsoft.
Voor details en documentatie, zie:

Enkele handige commando’s om aan de slag te gaan:

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

llvm-pdbutil ophalen:

Volgens LLVM 7.0.0, de nieuwste officiële release, wordt llvm-pdbutil.exeniet gedistribueerd met de LLVM-binaire bestanden, dus het moet vanaf de broncode worden gebouwd.

Als je het echter goed vindt met een niet-officiële, Windows 64-bits binaire versie, zijn mijn zelfgemaakte llvm-pdbutil-builds hier beschikbaar (let op: Visual C++ 2015 Redistributable is vereist):

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

Gebouw llvm-pdbutil:

Voor het bouwen van llvm-pdbutil vanaf de broncode op Windows, moet u LLVM-build ophalen en instellen.
Volg de instructies op https://llvm.org/docs/GettingStarted.html.

Er zijn echter enkele noodzakelijke toevoegingen voor PDB-ondersteuning. Samenvattend (voor VS 2017):

  • Kloon de LLVM-repo: git clone https://github.com/llvm/llvm-project.git
  • cd llvm-project
  • mkdir build && cd build
  • Als het niet wordt uitgevoerd vanuit Visual Studio Console: 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
  • in Visual Studio, bouw de Tools/llvm-pdbutil-project.

Antwoord 4, Autoriteit 22%

PDB-kijkers (GUI)

draagbare PDB

Classic (niet-draagbaar) PDB


Antwoord 5, Autoriteit 11%

U kunt de dbh-tool uit Windows gebruiken SDK.

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

Other episodes