Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
DBH is een opdrachtregelprogramma dat veel van de functies in de DbgHelp-API (dbghelp.dll) beschikbaar maakt. Het kan informatie weergeven over de inhoud van een symboolbestand, specifieke details van de symbolen in het bestand weergeven en zoeken naar symbolen die voldoen aan verschillende criteria. Zie de Help-bibliotheek voor foutopsporing voor meer informatie.
De functionaliteit van DBH is vergelijkbaar met die in WinDbg, KD en CDB door opdrachten zoals x (Symbolen onderzoeken).
DBH uitvoeren in interactieve modus
U start DBH met een eenvoudige opdrachtregel, waarop u de doelmodule opgeeft waarvan u de symbolen wilt onderzoeken. Een doelmodule kan een EXE-programma of een PDB-symboolbestand zijn. U kunt ook een proces-id (PID) opgeven om te onderzoeken. Zie DBH Command-Line Opties voor de volledige syntaxis.
Wanneer DBH wordt gestart, worden de symbolen voor de opgegeven module geladen en wordt u vervolgens weergegeven met een prompt waarmee u verschillende opdrachten kunt typen. Zie DBH-opdrachten voor een lijst met beschikbare opdrachten.
De volgende reeks start bijvoorbeeld DBH door het doelproces op te geven met proces-id 4672, voert vervolgens de enum-opdracht uit bij de DBH-prompt om symbolen weer te geven die overeenkomen met een specifiek patroon en voert vervolgens de q-opdracht uit om DBH af te sluiten:
C:\> dbh -p:4672
400000 : TimeTest
77820000 : ntdll
77740000 : kernel32
pid:4672 mod:TimeTest[400000]: enum TimeTest!ma*
index address name
1 42cc56 : main
3 415810 : malloc
5 415450 : mainCRTStartup
pid:4672 mod:TimeTest[400000]: q
goodbye
DBH uitvoeren in batchmodus
Als u slechts één DBH-opdracht wilt uitvoeren, kunt u deze aan het einde van de opdrachtregel opgeven. Dit zorgt ervoor dat DBH wordt gestart, de opgegeven module laadt, de opgegeven opdracht uitvoert en vervolgens afsluit.
Het vorige voorbeeld kan bijvoorbeeld worden vervangen door één opdrachtregel:
C:\> dbh -p:4672 enum TimeTest!ma*
400000 : TimeTest
77820000 : ntdll
77740000 : kernel32
index address name
1 42cc56 : main
3 415810 : malloc
5 415450 : mainCRTStartup
Deze methode voor het uitvoeren van DBH wordt batchmodus genoemd, omdat deze eenvoudig kan worden gebruikt in batchbestanden. Deze versie van de opdrachtregel kan ook worden gevolgd door een pipe ( | ) die de DBH-uitvoer omleidt naar een ander programma.
Het doel opgeven
DBH kan op drie manieren een doel selecteren: op basis van de proces-id van een actief proces, op de naam van het uitvoerbare bestand of op de naam van het symboolbestand. Als er bijvoorbeeld precies één exemplaar van MyProg.exe wordt uitgevoerd, met proces-id 1234, zijn de volgende opdrachten bijna gelijk:
C:\> dbh -v -p:1234
C:\> dbh -v c:\mydir\myprog.exe
C:\> dbh -v c:\mydir\myprog.pdb
Een verschil tussen deze opdrachten is dat wanneer u DBH start door de proces-id op te geven, DBH de werkelijke virtuele adressen gebruikt die door dit proces worden gebruikt. Wanneer u DBH start door de naam van het uitvoerbare bestand of de bestandsnaam van het symbool op te geven, gaat DBH ervan uit dat het basisadres van de module een standaardwaarde is (bijvoorbeeld 0x01000000). Vervolgens kunt u de basisopdracht gebruiken om het werkelijke basisadres op te geven, waardoor de adressen van alle symbolen in de module worden verplaatst.
DBH wordt niet gekoppeld aan het doelproces zoals een debugger dat doet. DBH kan een proces niet starten of beëindigen en kan ook niet wijzigen hoe dat proces wordt uitgevoerd. DBH moet aan een proces worden gekoppeld op basis van de proces-id, waarbij het doelproces moet draaien, maar zodra DBH is gestart, kan het doelproces worden beëindigd en blijft DBH toegang houden tot de symbolen.
Versierde en ongedecoreerde symbolen
DBH gebruikt standaard ongedecoreerde symboolnamen bij het weergeven en zoeken naar symbolen. Als u de optie SYMOPT_UNDNAME uitschakelt of de optie -d op de DBH-opdrachtregel opneemt, worden decoraties opgenomen.
Zie Openbare en persoonlijke symbolen voor meer informatie over symbooldecoraties.
DBH afsluiten
Als u DBH wilt afsluiten, gebruikt u de q-opdracht bij de DBH-prompt.