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.
Při řízení ladění v uživatelském režimu z ladicího programu jádra narazíte na čtyři různé režimy a můžete mezi nimi přepínat různými způsoby.
Poznámka Při popisu tohoto scénáře cílová aplikace odkazuje na aplikaci v uživatelském režimu, která se ladí, cílový počítač odkazuje na počítač, který obsahuje cílovou aplikaci a proces CDB nebo NTSD, a hostitelský počítač odkazuje na počítač, který obsahuje ladicí program jádra.
Zobrazí se následující čtyři režimy:
Ladění v uživatelském režimu
Cílový počítač a cílová aplikace se zablokují. V příkazovém okně ladicího programu kernelového ladicího programu se zobrazí výzva k ladění v uživatelském režimu. V WinDbg se na příkazovém řádku v dolním panelu okna WinDbg zobrazí vstup>. Na tuto výzvu můžete zadat příkazy, jako by byly zadané během ladění v uživatelském režimu, a analyzovat stav cílové aplikace nebo způsobit, že se spustí nebo projde jeho spuštěním. Soubory symbolů, příponové knihovny DLL a další soubory, ke kterým ladicí program přistupuje, budou tyto soubory v cílovém počítači, nikoli na hostitelském počítači.
Spuštění cílové aplikace
Cílový počítač je spuštěný, cílová aplikace je spuštěná a ladicí program čeká. Tento režim je stejný jako nechat cílový proces provádět v běžném režimu ladění.
Režim spánku
Cílový počítač je spuštěný, ale cílová aplikace je zablokovaná a oba ladicí programy jsou zablokované. Tento režim je užitečný, pokud potřebujete něco udělat v cílovém počítači, ale nechcete změnit stav relace ladění.
Ladění v režimu jádra
Cílový počítač a cílová aplikace se zablokují. V okně příkazů ladicího programu pro jádro se zobrazí ladicí výzva kd>. Tento režim je typickým stavem ladění v režimu jádra.
Relace začíná v režimu ladění v uživatelském režimu. Následující akce a události způsobí, že se režim změní:
Pokud chcete přepnout z ladění v uživatelském režimu na spuštění cílové aplikace, použijte příkaz g (Go) na příkazovém
Input>řádku.Pokud chcete dočasně přepnout z ladění v uživatelském režimu na spuštění cílové aplikace a pak se vrátit k ladění v uživatelském režimu, použijte krok, trasování nebo jiný dočasný příkaz spuštění. Seznam takových příkazů najdete v tématu Řízení cíle.
Pokud chcete přepnout z ladění v uživatelském režimu do režimu spánku, použijte příkaz .sleep (Pozastavit ladicí program ). Tento příkaz je časově omezený. Po vypršení doby se systém vrátí do ladění v uživatelském režimu.
Pokud chcete přepnout z ladění v uživatelském režimu na ladění v režimu jádra, použijte příkaz .breakin (Break to the Kernel Debugger). Upozorňujeme, že .breakin může skončit chybou odepření přístupu, pokud volající proces nemá administrátorská práva. V tomto případě přepněte na KD zadáním krátkého příkazu .sleep a stisknutím kombinace kláves CTRL+C.
V určitých prostředích můžete přepnout z provádění cílové aplikace na ladění v uživatelském režimu. Pokud cílový počítač používá systém Microsoft Windows XP nebo novější verzi operačního systému Windows, můžete použít příkaz rozšíření !bpid . Pokud používáte CDB (ne NTSD), můžete v cílovém počítači aktivovat okno CDB a stisknout ctrl+C.
Pokud cílová aplikace dosáhne zarážky, dojde k výjimce, dojde k nějaké jiné řízené události nebo končí, systém přepne z provádění cílové aplikace na ladění v uživatelském režimu. Takové události byste měli naplánovat předem, zejména pokud používáte NTSD. Další informace o těchto událostech naleznete v tématu Použití zarážek a řízení výjimek a událostí.
Pokud chcete přepnout z provádění cílové aplikace na ladění v režimu jádra, stiskněte kombinaci kláves CTRL+C v okně KD, stiskněte kombinaci kláves CTRL+BREAK nebo v nabídce Ladění v okně WinDbg nebo stiskněte klávesy SYSRQ nebo ALT+SYSRQ na klávesnici cílového počítače. (Pokud je váš ladicí program jádra KD a současně, když ladicí program jádra komunikuje s ladicím programem v uživatelském režimu, stisknete CTRL+C, může ladicí program v uživatelském režimu toto stisknutí zachytit.)
Pokud ladicí program zaznamená chybu jádra nebo pokud používáte nástroj Breakin.exe, systém přepne z provádění cílové aplikace na ladění v režimu jádra.
Pokud chcete přepnout z režimu spánku na ladění v uživatelském režimu, počkejte na vypršení platnosti doby spánku, spusťte nový proces CDB v cílovém počítači pomocí možnosti příkazového řádku -wake nebo použijte příkaz .wake (Wake Debugger) v jiné kopii CDB nebo NTSD na cílovém počítači.
Pokud chcete vypnout ladění v režimu jádra, použijte příkaz g (Go) na příkazovém
kd>řádku. Tento příkaz se vrátí do ladění v uživatelském režimu nebo spuštění cílové aplikace (podle toho, který z těchto dvou je naposledy použitý stav).