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.
WinDbg můžete použít k připojení ke spuštěném procesu nebo k vytvoření a připojení k novému procesu.
Připojení ke spuštěnému procesu
Existuje několik způsobů, jak použít WinDbg k připojení ke spuštěném procesu. Bez ohledu na zvolenou metodu budete potřebovat ID procesu nebo název procesu. ID procesu je číslo přiřazené operačním systémem. Další informace o tom, jak určit ID procesu a název procesu, naleznete v tématu Vyhledání ID procesu.
Nabídka WinDbg
Pokud je WinDbg v režimu spánku, můžete se připojit ke spuštěnému procesu tak, že v nabídce Soubor vyberete Připojit k procesu, nebo stisknutím klávesy F6.
V dialogovém okně Připojit k procesu vyberte proces, který chcete ladit, a vyberte OK.
Příkazový řádek
V okně příkazového řádku se můžete připojit ke spuštěném procesu při spuštění WinDbg. Použijte jeden z následujících příkazů:
- windbg -pProcessID
- windbg -pnProcessName
kde ProcessID je ID procesu spuštěného procesu nebo ProcessName je název spuštěného procesu.
Další informace o syntaxi příkazového řádku naleznete v tématu WinDbg Command-Line Možnosti.
Příkazové okno ladicího programu
Pokud winDbg již ladí jeden nebo více procesů, můžete se ke spuštěným procesům připojit pomocí příkazu .attach (Připojit k procesu) v příkazovém okně ladicího programu.
Ladicí program vždy spouští více cílových procesů současně, pokud nejsou některá z jejich vláken zablokována nebo pozastavena.
Pokud je příkaz .attach úspěšný, ladicí program se připojí k zadanému procesu při příštím vydání příkazu spuštění ladicího programu. Pokud tento příkaz použijete několikrát za sebou, musí být spuštění požadováno ladicím programem tolikrát, kolikrát tento příkaz používáte.
Připojení ke spuštěnému procesu neinvazivně
Pokud chcete ladit spuštěný proces a interferovat pouze minimálně při jeho provádění, měli byste ladit proces neinvazivně.
Nabídka WinDbg
Pokud je WinDbg v režimu spánku, můžete neinvazivně ladit spuštěný proces tak, že zvolíte Připojit k procesu z nabídky Soubor nebo stisknutím klávesy F6.
Po zobrazení dialogového okna Připojit k procesu zaškrtněte políčko neinvazivní. Pak vyberte řádek obsahující ID procesu a požadovaný název. (ID procesu můžete také zadat do pole ID procesu.) Nakonec vyberte OK.
Příkazový řádek
V okně příkazového řádku se můžete při spuštění WinDbg neinvazivně připojit k běžícímu procesu. Použijte jeden z následujících příkazů:
- windbg -pv -pProcessID
- windbg -pv -pnProcessName
Existuje několik dalších užitečných možností příkazového řádku. Další informace o syntaxi příkazového řádku naleznete v tématu WinDbg Command-Line Možnosti.
Příkazové okno ladicího programu
Pokud je ladicí program již aktivní, můžete neinvazivně ladit spuštěný proces pomocí příkazu .attach -v (Připojit k procesu) v příkazovém okně ladicího programu.
Příkaz .attach můžete použít, pokud ladicí program již invazivně ladí jeden nebo více procesů. Tento příkaz nelze použít, pokud je WinDbg neaktivní.
Pokud je příkaz .attach -v úspěšný, ladicí program ladí zadaný proces při příštím spuštění příkazu. Vzhledem k tomu, že provádění není povoleno během neinvasivního ladění, ladicí program nemůže neinvasivně ladit více než jeden proces najednou. Toto omezení také znamená, že použití příkazu .attach -v může způsobit, že stávající invazivní ladicí relace bude méně užitečná.
Vytvoření nového procesu
WinDbg může spustit aplikaci v uživatelském režimu a pak aplikaci ladit. Aplikace je určena názvem. Ladicí program se může automaticky připojit také k podřízeným procesům (další procesy, které spustil původní cílový proces).
Procesy, které ladicí program vytvoří (označované také jako vytvořené procesy), se chovají mírně jinak než procesy, které ladicí program nevytvoří.
Místo použití standardního rozhraní API haldy používají procesy vytvořené ladicím programem speciální ladicí haldu. Můžete přimět vytvořený proces, aby místo ladicí haldy používal standardní haldu, a to buď pomocí proměnné prostředí _NO_DEBUG_HEAP , nebo možnosti příkazového řádku -hd .
Vzhledem k tomu, že cílová aplikace je podřízený proces ladicího programu, dědí oprávnění ladicího programu. Toto oprávnění může cílové aplikaci povolit, aby prováděla určité akce, které nemohla provést jinak. Cílová aplikace může mít například vliv na chráněné procesy.
Nabídka WinDbg
Pokud je WinDbg v režimu spánku, můžete vytvořit nový proces výběrem Otevřít spustitelný soubor z nabídky Soubor nebo stisknutím kombinace kláves CTRL+E.
Když se zobrazí dialogové okno Otevřít spustitelný soubor, zadejte úplnou cestu spustitelného souboru do pole název souboru nebo pomocí seznamu Look in vyberte požadovanou cestu a název souboru.
Pokud chcete použít parametry příkazového řádku s aplikací v uživatelském režimu, zadejte je do pole Argumenty. Pokud chcete změnit výchozí adresář, zadejte cestu k danému adresáři do pole Startovní adresář. Pokud chcete, aby se WinDbg připojil k podřízeným procesům, zaškrtněte políčko Ladit podřízené procesy také.
Po výběru vyberte Otevřít.
Příkazový řádek
V okně příkazového řádku můžete vytvořit nový proces při spuštění WinDbg. Použijte následující příkaz:
windbg [-o]ProgramName[Argumenty]
Možnost -o způsobí, že se ladicí program připojí k podřízeným procesům. Existuje několik dalších užitečných možností příkazového řádku. Další informace o syntaxi příkazového řádku naleznete v tématu WinDbg Command-Line Možnosti.
Příkazové okno ladicího programu
Pokud winDbg již ladí jeden nebo více procesů, můžete vytvořit nový proces pomocí příkazu .create (Create Process) v příkazovém okně ladicího programu.
Ladicí program vždy spustí více cílových procesů současně, pokud některá z jejich vláken nejsou zmrazená nebo pozastavená.
Pokud je příkaz .create úspěšný, ladicí program vytvoří zadaný proces při příštím vydání příkazu spuštění ladicího programu. Pokud tento příkaz použijete několikrát za sebou, musí být spuštění požadováno ladicím programem tolikrát, kolikrát tento příkaz používáte.
Počáteční adresář aplikace můžete řídit pomocí příkazu .createdir (Set Created Process Directory) před .create. Pomocí příkazu .createdir -I nebo -noinh příkazového řádku můžete určit, jestli cílová aplikace dědí popisovače ladicího programu.
Ladění podřízených procesů můžete aktivovat nebo deaktivovat pomocí příkazu .childdbg (ladění podřízených procesů).
Opětovné připojení k procesu
Pokud ladicí program přestane reagovat nebo se zasekne, můžete k cílovému procesu připojit nový ladicí program. Další informace o připojení ladicího programu v této situaci naleznete v tématu Opětovné připojení k cílové aplikaci.