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 část obsahuje:
Přehled modulu ladicího programu
pomocí rozhraní API ladicího programu
rozšíření EngExtCpp
přizpůsobení výstupu ladicího programu pomocí DML
rozšíření možností ladicího programu pomocí JavaScriptu
vývoj modulů rozšiřitelnosti přenosu KDNET
Tato dokumentace popisuje, jak používat rozhraní, jako jsou rozhraní poskytovaná modulem ladicího programu k zápisu 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 v režimu jádra.
modul ladicího programu
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.
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.
Další informace naleznete v tématu Přehled modulu ladicího programu a Pomocí rozhraní API 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.
Další informace naleznete v tématu Psaní rozšíření DbgEng.
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. Další informace naleznete v tématu Psaní rozšíření 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 se měla zkompilovat a sestavit pomocí sady Visual Studio.
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 !analyze ladicího programu můžete rozšířit napsáním modulu plug-in rozšíření analýzy. Poskytnutím modulu plug-in rozšíření analýzy se můžete účastnit analýzy kontroly chyb nebo výjimky způsobem, který je specifický pro vaši vlastní komponentu nebo aplikaci. Při psaní modulu plug-in rozšíření analýzy také napíšete soubor metadat, který popisuje situace, pro které chcete modul plug-in volat. Když !analyzovat spuštění, vyhledá, načte a spustí příslušné moduly plug-in rozšíření analýzy. Další informace najdete v tématu Psaní rozšíření vlastního ladicího programu analýzy
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 přemístují skriptovací jazyk na interní objektový model ladicího programu. 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.
Vývoj modulů rozšiřitelnosti přenosu KDNET
Přenos KDNET lze rozšířit tak, aby běžel na jakémkoli hardwaru pomocí samostatné knihovny DLL modulu rozšiřitelnosti ovladače hardwaru. Moduly rozšiřitelnosti přenosu KDNET jsou vyvinuty dodavateli síťových karet, aby do konkrétních síťových karet přidali podporu ladění jádra.
KDNET je přenos ladění jádra, který umožňuje ladění jádra oken přes síť. Je navržen tak, aby vrstva podpory hardwaru byla integrována do samostatného modulu od zpracování síťových paketů a vrstvy rozhraní jádra. Tato vrstva podpory hardwarového ovladače se nazývá modul rozšiřitelnosti KDNET. Další informace naleznete v tématu Vývoj modulů rozšiřitelnosti přenosu KDNET.