Sdílet prostřednictvím


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

Tento článek popisuje, jak začít s laděním pro Windows. Pokud vaším cílem je použít ladicí program k analýze výpisu 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

Informace o instalaci WinDbg naleznete 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

diagram znázorňující propojení mezi hostitelskými a cílovými systémy dvojitou šipkou

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ůže získat 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ší informace o používání ladicího programu v režimu jádra:

Přečtěte si další informace o používání ladicího programu 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 jsou obvykle propojeny 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 nemáte správně nakonfigurované symboly, obdržíte zprávy, které indikují, že symboly nejsou při pokusu o použití funkcí, které jsou závislé na symbolech, k dispozici. 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. Pomocí příkazu .hh v ladicím programu zobrazte užitečné informace o libovolném příkazu ladění. Další informace o dostupných příkazech viz referenční příručka ladicího programu.

12. Použití rozšíření ladění pro konkrétní technologie

K analýze datových struktur specifických pro doménu lze použít několik ladicích rozšíření. Další informace naleznete v tématu Specializované rozšíření. Načítání rozšiřujících knihoven DLL ladicího programu vysvětluje, jak načíst rozšíření 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ů, najdete v materiálech, jako jsou Interní Windows Od Pavla Yosifovicha, Marka E. Russinovicha, Davida A. Solomona a Alexe Ionescua.

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

Viz také