Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
DBH je nástroj příkazového řádku, který zveřejňuje mnoho funkcí v rozhraní DBgHelp API (dbghelp.dll). Může zobrazit informace o obsahu souboru symbolů, zobrazit konkrétní podrobnosti symbolů v souboru a vyhledat v souboru symboly odpovídající různým kritériím. Další informace naleznete v tématu Ladění knihovny nápovědy.
Funkce poskytované DBH se podobá tomu, které poskytuje WinDbg, KD a CDB příkazy, jako je x (Prozkoumat symboly).
Spuštění DBH v interaktivním režimu
DbH spustíte jednoduchým příkazovým řádkem, na kterém zadáte cílový modul, jehož symboly chcete prozkoumat. Cílovým modulem může být program EXE nebo soubor symbolů PDB. Můžete také zadat ID procesu (PID), které se má prošetřit. Úplnou syntaxi najdete v tématu Možnosti Command-Line DBH .
Když se dbH spustí, načte symboly pro zadaný modul a zobrazí výzvu, na které můžete zadat různé příkazy. Seznam dostupných příkazů najdete v tématu Příkazy DBH .
Například následující sekvence spustí DBH zadáním cílového procesu s ID procesu 4672 a potom spustí příkaz výčtu na příkazovém řádku DBH, aby se zobrazily symboly odpovídající určitému vzoru, a potom spustí příkaz q , který ukončí DBH:
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
Spuštění DBH v dávkovém režimu
Pokud chcete spustit jenom jeden příkaz DBH, můžete ho zadat na konci příkazového řádku. To způsobí spuštění DBH, načtení zadaného modulu, spuštění zadaného příkazu a ukončení.
Předchozí příklad může být například nahrazen jedním příkazovým řádkem:
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
Tato metoda spouštění DBH se nazývá dávkový režim, protože ji lze snadno použít v dávkových souborech. Za touto verzí příkazového řádku může následovat také kanál ( | ), který přesměruje výstup DBH do jiného programu.
Určení cíle
DbH může vybrat cíl třemi způsoby: PODLE ID procesu spuštěného procesu, podle názvu spustitelného souboru nebo názvu souboru symbolů. Pokud je například právě jedna instance MyProg.exe spuštěná, s ID procesu 1234 jsou následující příkazy téměř ekvivalentní:
C:\> dbh -v -p:1234
C:\> dbh -v c:\mydir\myprog.exe
C:\> dbh -v c:\mydir\myprog.pdb
Jedním z rozdílů mezi těmito příkazy je, že když spustíte DBH zadáním ID procesu, DBH používá skutečné virtuální adresy používané tímto procesem. Při spuštění DBH zadáním názvu spustitelného souboru nebo názvu souboru symbolu dbH předpokládá, že základní adresa modulu je standardní hodnota (například 0x01000000). Potom můžete pomocí základního příkazu zadat skutečnou základní adresu, čímž posunete adresy všech symbolů v modulu.
DbH se nepřipojit k cílovému procesu způsobem, který ladicí program provede. DbH nemůže způsobit zahájení nebo ukončení procesu ani nemůže změnit způsob spuštění procesu. Aby se DBH mohl připojit k procesu podle ID procesu, musí být cílový proces spuštěný, ale jakmile dbH spustí cílový proces, může být ukončen a DBH bude nadále přistupovat ke svým symbolům.
Dekorované a nezakódované symboly
DbH ve výchozím nastavení používá při zobrazení a hledání symbolů nepojištěné názvy symbolů. Pokud vypnete volbu symbolu SYMOPT_UNDNAME nebo zahrnete volbu -d na příkazovém řádku DBH, budou zahrnuty ornamenty.
Informace o dekoracích symbolů naleznete v tématu Veřejné a soukromé symboly.
Ukončení DBH
K ukončení dbH použijte příkaz q na příkazovém řádku DBH.