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.
Tato dokumentace popisuje, jak používat modul ladicího programu a jak psát rozšíření, která se budou spouštět ve WinDbg, KD, CDB a NTSD. Tato rozšíření ladicího programu lze použít při ladění v uživatelském režimu nebo režimu jádra v systému Microsoft Windows.
Ladicí stroj
Modul ladicího programu poskytuje rozhraní pro zkoumání a manipulaci s cíli ladění v uživatelském režimu a režimu jádra v systému Microsoft Windows.
Modul ladicího programu může získávat cíle, nastavovat zarážky, monitorovat události, symboly dotazů, číst a zapisovat paměť a řídit vlákna a procesy v cíli.
Modul ladicího programu můžete použít k zápisu rozšiřujících knihoven ladicího programu i samostatných aplikací. Takové aplikace jsou aplikace ladicího programu. Aplikace ladicího programu, která používá úplné funkce ladicího programu je ladicí program. Například WinDbg, CDB, NTSD a KD jsou ladicí programy; modul ladicího programu poskytuje jádro jejich funkcí.
Rozhraní API modulu ladicího programu je určeno prototypy v souboru hlavičky dbgeng.h.
Neúplná dokumentace
Jedná se o předběžný dokument, který je momentálně neúplný.
Pro mnoho konceptů týkajících se ladicích programů a ladicího modulu, které zde ještě nejsou zdokumentovány, se podívejte do části Techniky ladění této dokumentace.
Pokud chcete získat některé z aktuálně nezdokumentovaných funkcí rozhraní API ladicího programu, použijte metodu Execute ke spuštění jednotlivých příkazů ladicího programu.
rozšíření
Vlastní příkazy ladění můžete vytvořit zápisem a sestavením rozšiřující knihovny DLL. Můžete například chtít napsat příkaz rozšíření, který zobrazí složitou datovou strukturu.
Existují tři různé typy rozšiřujících knihoven DLL ladicího programu:
DbgEng rozšíření DLL. Ty jsou založené na prototypech v souboru hlavičky dbgeng.h. Každá knihovna DLL tohoto typu může exportovat příkazy rozšíření DbgEng. Tyto rozšiřující příkazy používají rozhraní API modulu ladicího programu a mohou také používat rozhraní API WdbgExts.
rozšiřující knihovny DLL EngExtCpp. Jsou založeny na prototypech v hlavičkových souborech engextcpp.h a dbgeng.h. Každá knihovna DLL tohoto typu může exportovat příkazy rozšíření DbgEng. Tyto příkazy rozšíření používají rozhraní API modulu ladicího programu i architekturu rozšíření EngExtCpp a mohou také používat rozhraní WDBgExts API.
rozšíření WdbgExts DLL. Jsou založeny na prototypech v souboru hlavičky wdbgexts.h. Každá knihovna DLL tohoto typu exportuje jeden nebo více příkazů rozšíření WdbgExts. Tyto příkazy rozšíření používají výhradně rozhraní API WdbgExts.
Rozhraní DBgEng API lze použít k vytváření rozšíření nebo samostatných aplikací. Rozhraní API WdbgExts obsahuje podmnožinu funkcí rozhraní API modulu ladicího programu a lze ho používat pouze rozšířeními.
Všechna rozšíření ladicího programu by měla být zkompilována a sestavena pomocí nástroje Build. Nástroj Build je součástí sady Windows Driver Kit (WDK).
Ukázky kódu rozšíření se nainstalují jako součást balíčku Nástroje ladění pro Windows, pokud provedete vlastní instalaci a vyberete komponentu SDK a všechny její dílčí součásti. Najdete je v podadresáři sdk\samples instalačního adresáře Nástroje ladění pro Windows.
Nejjednodušší způsob, jak napsat nová rozšíření ladicího programu, je studovat ukázková rozšíření. Každé ukázkové rozšíření obsahuje soubor pravidel a zdrojové soubory pro použití s nástrojem Build. V ukázkách jsou reprezentovány oba typy rozšíření.
psaní vlastních rozšíření ladicího programu analýzy
Možnosti příkazu !analyze ladicího programu můžete rozšířit napsáním rozšířujícího zásuvného modulu pro analýzu. Poskytnutím pluginu pro rozšíření analýzy se můžete účastnit analýzy chybové kontroly nebo výjimky způsobem, který je specifický pro vaši komponentu nebo aplikaci. Při psaní analytického pluginu také napíšete soubor metadat, který popisuje situace, pro které chcete, aby byl plugin volán. Když se spustí !analyze, vyhledá, načte a spustí příslušné analytické rozšiřující zásuvné moduly. Další informace najdete v tématu Psaní vlastních rozšíření ladicího programu pro analýzu
Přizpůsobení výstupu ladicího programu pomocí DML
Výstup ladicího programu můžete přizpůsobit pomocí DML. Další informace naleznete v tématu Přizpůsobení výstupu ladicího programu pomocíDML .
rozšíření možností ladicího programu pomocí JavaScriptu
Pomocí JavaScriptu můžete vytvářet skripty, které rozumí objektům ladicího programu a rozšiřují a přizpůsobují možnosti ladicího programu. Zprostředkovatelé JavaScriptu propojují skriptovací jazyk s interním objektovým modelem hadače. Zprostředkovatel skriptování ladicího programu JavaScriptu umožňuje použití JavaScriptu s ladicím programem. Další informace naleznete v tématu JavaScript Debugger Scripting.