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:
- http://blogs.msdn.com/jmstall/ archief/2005/08/25/pdb2xml.aspx
- http://www.codeproject.com/KB/bugs/PdbParser.aspx
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:
- LLVM op Windows ondersteunt nu PDB Debug Info (LLVM Project Blog)
- llvm-pdbutil – PDB File forensics and diagnostics (LLVM Homepage)
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.exe
niet 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
-
Hulpmiddelen
- sourcelink :
sourcelink print-urls Foo.pdb
- sourcelink :
-
Programmatische toegang
Classic (niet-draagbaar) PDB
- gereedschap
- llvm-pdbutil :
llvm-pdbutil dump -all Foo.pdb
- cvdump :
cvdump Foo.pdb
- dbh :
dbh.exe -v Foo.pdb dump
- PDBSstr :
pdbstr.exe -r -p:Foo.pdb -s:StreamName
- pdbparse :
pip3 install pdbparse; pdb_dump.py Foo.pdb
- llvm-pdbutil :
- programmatische toegang
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