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.
Pokud je aplikace v uživatelském režimu již spuštěná, ladicí program ho může ladit neinvazivně. Při neinvazivním ladění nemáte mnoho možností ladění. Můžete ale minimalizovat zásah ladicího programu do cílové aplikace. Neinvazivní ladění může být užitečné, pokud cílová aplikace přestane reagovat.
V neinvazivním ladění se ladicí program ve skutečnosti nepřipojuje k cílové aplikaci. Ladicí program pozastaví všechna vlákna cíle a má přístup k paměti, registru a dalším takovým informacím cíle. Ladicí program však nemůže řídit cíl, takže příkazy jako g (Go) nefungují.
Pokud se pokusíte spustit příkazy, které nejsou povoleny během neinvasivního ladění, zobrazí se chybová zpráva s informací, že ladicí program není připojen, takže spuštění procesu nelze monitorovat.
Výběr procesu pro ladění
Cílovou aplikaci můžete zadat podle ID procesu (PID) nebo názvu procesu.
Pokud zadáte aplikaci podle názvu, měli byste použít úplný název procesu, včetně přípony názvu souboru. Pokud mají dva procesy stejný název, musíte místo toho použít ID procesu.
Další informace o tom, jak určit ID procesu a název procesu, naleznete v tématu Vyhledání ID procesu.
Informace o spuštění a zastavení neinvasivní ladicí relace najdete v následujících tématech:
Příkazový řádek CDB
Pokud chcete neinvazivně ladit spuštěný proces z příkazového řádku CDB, zadejte v následující syntaxi možnost -pv, možnost -p a ID procesu.
cdb -pv -pProcessID
Pokud chcete neinvazivně ladit spuštěný proces zadáním názvu procesu, použijte místo toho následující syntaxi.
cdb -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 CDB Command-Line Možnosti.
Příkazový řádek WinDbg
Pokud chcete neinvazivně ladit spuštěný proces z příkazového řádku WinDbg, zadejte v následující syntaxi možnost -pv, možnost -p a ID procesu.
windbg -pv -pProcessID
Pokud chcete neinvazivně ladit spuštěný proces zadáním názvu procesu, použijte místo toho následující syntaxi.
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.
Nabídka WinDbg
Pokud je WinDbg v režimu spánku, můžete neinvazivně ladit spuštěný proces kliknutím na Připojit k procesu v nabídce Soubor nebo stisknutím klávesy F6.
Když se zobrazí dialogové okno Připojit k procesu, zaškrtněte políčko Neinvasivní. Pak vyberte řádek obsahující ID procesu a požadovaný název. (Id procesu můžete také zadat do pole ID procesu.) Nakonec klikněte na OK.
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 už ladí jeden nebo více procesů invazivně. Tento příkaz můžete použít v CDB, pokud je neaktivní, ale ne v neaktivním WinDbg.
Pokud je příkaz .attach -v úspěšný, ladicí program ladí zadaný proces při příštím vydání příkazu spuštění ladicího programu. 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á.
Zahájení ladicí relace
Další informace o tom, jak začít ladit, naleznete v tématu Operace ladicího programu.