Sdílet prostřednictvím


Začínáme s laděním Windows

Tento článek vysvětluje, jak začít s laděním Windows pomocí WinDbg a dalších nástrojů pro ladění. Naučíte se:

  • Instalace ladicího programu a nastavení hostitelských a cílových systémů
  • Konfigurujte prostředí ladění
  • Základní techniky ladění pro jádrové režimy a uživatelské režimy

Poznámka: Pokud chcete místo toho analyzovat výpis stavu systému, přečtěte si téma Analýza souborů s výpisem stavu systému pomocí WinDbg.

Pokud chcete začít s laděním Windows, proveďte následující kroky.

1. Instalace ladicího programu systému Windows

Nainstalujte WinDbg a zahajte ladění aplikací a ovladačů systému Windows. Podrobný postup instalace najdete v tématu Instalace WinDbg.

2. Identifikace hostitelských a cílových systémů

K ladění se obvykle používají dva samostatné počítačové systémy, protože během procesu se obvykle pozastaví provádění instrukcí na procesoru. Ladicí program běží na hostitelském systému a kód, který chcete ladit, běží v cílovém systému.

Hostitel <--------------------------------------------------> Cíl

Snímek obrazovky s diagramem znázorňující dvojitou šipku spojující hostitelský systém a cílové ladicí systémy

V některých situacích je možné jako druhý systém použít virtuální počítač. Například virtuální počítač může běžet na stejném počítači jako kód, který potřebujete ladit. Pokud ale váš kód komunikuje s hardwarem nízké úrovně, nemusí být použití virtuálního počítače nejlepším přístupem. Další informace naleznete v tématu Nastavení ladění sítě virtuálního počítače – KDNET.

3. Určení typu ladicího programu: režim jádra nebo uživatelský režim

Dále je potřeba určit, jestli se má použít režim jádra nebo ladění v uživatelském režimu.

  • Operační systém a privilegované programy běží v režimu jádra . Kód v režimu jádra má oprávnění pro přístup k jakékoli části systému a není omezený jako kód v uživatelském režimu. Kód v režimu jádra má přístup k jakékoli části jakéhokoli jiného procesu spuštěného v uživatelském režimu nebo v režimu jádra. Většina základních funkcí operačního systému a mnoho ovladačů hardwarových zařízení běží v režimu jádra.

  • Aplikace a subsystémy v počítači běží v uživatelském režimu . Procesy, které běží v uživatelském režimu, to dělají ve svých vlastních virtuálních adresních prostorech. Přístup k mnoha částem systému, včetně systémového hardwaru, paměti, která není přidělena pro jejich použití, a dalších částí systému, které by mohly ohrozit integritu systému, jsou omezené. Procesy, které běží v uživatelském režimu, jsou efektivně izolované od systému a od jiných procesů uživatelského režimu, takže nemůžou narušovat tyto prostředky.

Pokud vaším cílem je ladit ovladač, určete, jestli je ovladač ovladačem v režimu jádra nebo ovladačem v uživatelském režimu. Ovladače Windows Driver Model (WDM) a Rámec ovladače Kernel-Mode (KMDF) jsou ovladače v režimu jádra. Jak název napovídá, ovladače User-Mode Driver Framework (UMDF) jsou ovladače uživatelského režimu.

U některých problémů může být obtížné určit, ve kterém režimu se kód spouští. V takovém případě možná budete muset vybrat jeden režim a zjistit, jaké informace jsou v tomto režimu dostupné. Některé problémy vyžadují použití ladicího programu v uživatelském režimu i v režimu jádra.

V závislosti na tom, v jakém režimu ladíte, možná budete muset nakonfigurovat a používat ladicí programy různými způsoby. Některé příkazy ladění fungují stejně v obou režimech a některé příkazy fungují jinak.

Další kroky pro ladění v režimu kernelu

Další kroky pro ladění v uživatelském režimu

4. Zvolte prostředí ladicího programu

Ladicí program WinDbg funguje ve většině situací dobře, ale někdy můžete chtít použít jiný ladicí program, například ladicí programy konzoly pro automatizaci nebo Visual Studio. Další informace naleznete v sekci Prostředí pro ladění.

5. Zjistěte, jak připojit cíl a hostitele.

Cílové a hostitelské systémy se obvykle propojují pomocí sítě Ethernet. Pokud pracujete na počátečním zavádění, nebo na zařízení nemáte připojení k síti Ethernet, jsou k dispozici další možnosti síťového připojení. Další informace najdete v těchto článcích:

6. Zvolte 32bitové nebo 64bitové nástroje pro ladění.

Bez ohledu na to, jestli potřebujete 32bitový nebo 64bitový ladicí program, závisí na verzi Windows, která běží na cílovém a hostitelském systému a jestli ladíte 32bitový nebo 64bitový kód. Další informace naleznete v tématu volba 32bitové nebo 64bitové nástroje ladění.

7. Konfigurace symbolů

Pokud chcete použít všechny pokročilé funkce, které WinDbg poskytuje, musíte načíst správné symboly. Pokud symboly správně nenakonfigurujete, obdržíte zprávy označující, že symboly nejsou při pokusu o použití funkcí, které závisí na symbolech, dostupné. Další informace naleznete v tématu Symboly pro ladění systému Windows.

8. Konfigurace zdrojového kódu

Pokud vaším cílem je ladit vlastní zdrojový kód, musíte nakonfigurovat cestu ke zdrojovému kódu. Další informace naleznete v tématu cesta zdroje.

9. Seznamte se s operací ladicího programu

Část ladicího programu v této dokumentaci popisuje provoz ladicího programu pro různé úlohy. Například Uchovávání souboru protokolu ve WinDbg popisuje, jak WinDbg může zaznamenávat ladicí relaci do souboru protokolu.

10. Seznamte se s technikami ladění

Standardní techniky ladění platí u většiny scénářů ladění, a to včetně nastavení zarážek, zkoumání zásobníku volání a nalezení úniku paměti. specializované techniky ladění se aplikují na konkrétní technologie nebo typy kódu. Mezi příklady patří ladění Plug and Play, ladění KMDF a ladění RPC.

11. Použití referenčních příkazů ladicího programu

Při práci v ladicím programu můžete použít různé ladicí příkazy. Pokud chcete získat nápovědu k libovolnému příkazu při ladění, použijte .hh příkaz následovaný názvem příkazu.

Příklady:

.hh bp # Get help on breakpoint commands
.hh k # Get help on call stack commands

Úplný seznam dostupných příkazů najdete v referenčních informacích k ladicímu programu.

Použijte rozšíření pro ladění pro konkrétní technologie

K analýze datových struktur specifických pro doménu můžete použít více ladicích rozšíření. Další informace naleznete v tématu Specializované rozšíření. Informace o tom, jak načíst rozšíření ladicího programu, naleznete v tématu Načítání rozšiřujících knihoven DLL ladicího programu.

Tato dokumentace předpokládá, že máte určité znalosti o základních interních systémech Windows. Další informace o interních systémech Windows, včetně využití paměti, kontextu, vláken a procesů, můžete zkontrolovat zdroje, jako jsou Windows Internals od Pavel Yosifovich, Mark E. Russinovich, David A. Solomon a Alex Ionescu.

14. Kontrola dalších prostředků debugování

Mezi další zdroje patří následující knihy a videa:

  • Uvnitř ladění Windows: Praktické strategie ladění a trasování od Tarik Soulami
  • Rozšířené ladění Windows od Maria Hewardta a Daniela Pravata
  • Defrag Tools videosérie, epizody 13 až 29, všechno o WinDbg

Další kroky

Pokračujte výběrem režimu ladění:

Ladění v režimu jádra (pro ovladače a komponenty operačního systému):

Ladění v uživatelském režimu (pro aplikace):

Další pokyny k nastavení: