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.
Visual Studio může ladit řešení, které má několik procesů. Můžete spustit a přepínat mezi procesy, přerušit, pokračovat a procházet zdrojový kód, zastavit ladění a ukončit nebo se odpojit od jednotlivých procesů.
Zahájení ladění s více procesy
Pokud v řešení sady Visual Studio může běžet více než jeden projekt nezávisle, můžete vybrat, který projekt ladicí program spustí. Aktuální startovací projekt se v Průzkumníku řešení zobrazí tučně.
Pokud chcete změnit spouštěný projekt, klikněte v Průzkumníku řešení pravým tlačítkem myši na jiný projekt a vyberte Nastavit jako spouštěný projekt.
Pokud chcete spustit ladění projektu z Průzkumníka řešení bez toho, aby byl spouštěný projekt, klikněte pravým tlačítkem myši na projekt a vyberte Ladit>spustit novou instanci nebo Krok do nové instance.
Nastavení spouštěcího projektu nebo více projektů z vlastností řešení:
Vyberte řešení v Průzkumníku řešení a pak na panelu nástrojů vyberte ikonu Vlastnosti nebo klikněte pravým tlačítkem na řešení a vyberte Vlastnosti.
Na stránce Vlastnosti vyberte Společné vlastnosti>Spouštěcí projekt.
Vyberte Aktuální výběr, Jeden spouštěný projekt a soubor projektu nebo Více projektů po spuštění.
Pokud vyberete více projektů po spuštění, můžete změnit pořadí spuštění a akci, která se má provést pro každý projekt: Spustit, Spustit bez ladění nebo Žádné.
Chcete-li použít a zavřít dialogové okno, vyberte Použít nebo OK .
Připojte se k procesu
Ladicí program se také může připojit k aplikacím spuštěným v procesech mimo Visual Studio, včetně na vzdálených zařízeních. Po připojení k aplikaci můžete použít ladicí program Visual Studio. Funkce ladění můžou být omezené. Závisí na tom, jestli byla aplikace vytvořena s informacemi o ladění, jestli máte přístup ke zdrojovému kódu aplikace a jestli kompilátor JIT sleduje ladicí informace.
Další informace naleznete v tématu Připojení ke spuštěným procesům.
Připojení ke spuštěném procesu:
Když je aplikace spuštěná, vyberte >Připojit k procesu.
V dialogovém okně Připojit k procesu vyberte proces ze seznamu Dostupné procesy a pak vyberte Připojit.
Poznámka:
Debugger se automaticky nepřipojí k dceřinému procesu, který je spuštěn laděným procesem, i když je dceřiný projekt součástí stejného řešení. Pokud chcete ladit podřízený proces, připojte se k podřízeného procesu po jeho spuštění nebo nakonfigurujte Editor registru systému Windows tak, aby spustil podřízený proces v nové instanci ladicího programu.
Použití Editoru registru k automatickému spuštění procesu v debuggeru
Někdy může být potřeba ladit spouštěcí kód pro aplikaci, která je spuštěna jiným procesem. Mezi příklady patří služby a akce vlastního nastavení. Můžete spustit ladicí program a ten se automaticky připojí k aplikaci.
Spusťte Editor registru systému Windows spuštěním regedit.exe.
V Editoru registru přejděte na HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
Vyberte složku aplikace, kterou chcete spustit v ladicím nástroji.
Pokud aplikace není uvedená jako podřízená složka, klikněte pravým tlačítkem na Možnosti spuštění souboru obrázku, vyberte Nový>klíč a zadejte název aplikace. Nebo klikněte pravým tlačítkem myši na nový klíč ve stromu, vyberte Přejmenovat a zadejte název aplikace.
Klikněte pravým tlačítkem myši na nový klíč ve stromu a vyberte Nový>Hodnota řetězce.
Změňte název nové hodnoty z nové hodnoty #1 na
debugger.Klikněte pravým tlačítkem myši na ladicí program a vyberte Upravit.
V dialogovém okně Upravit řetězec zadejte
vsjitdebugger.exedo pole Údaj hodnoty a pak vyberte OK.
Ladění s několika procesy
Při ladění aplikace s několika procesy ovlivňují příkazy ladicího programu přerušení, krokování a pokračování všechny procesy ve výchozím nastavení. Například když je proces pozastaven na kontrolním bodě, je také pozastaveno provádění všech ostatních procesů. Toto výchozí chování můžete změnit, abyste získali větší kontrolu nad cíli příkazů provádění.
Chcete-li změnit nastavení, zda se všechny procesy pozastaví, když jeden proces selže:
- V podokně Nástroje (nebo Ladění) >Možnosti rozbalte sekci Všechna nastavení>Ladění>Obecné.
- V dialogovém okně Nástroje (nebo Ladění) > rozbalte část laděníObecné.
- Zaškrtněte nebo zrušte zaškrtnutí možnosti Přerušit všechny procesy, když se jeden proces přeruší.
Break, Step, Continue – příkazy
Následující tabulka popisuje chování příkazů ladění, pokud je zaškrtnuto nebo zrušeno zaškrtnutí políčka Přerušit všechny procesy, když jeden proces přeruší:
| Command | Vybráno | Odznačeno |
|---|---|---|
| Ladit>Zastavit vše | Všechny procesy se přeruší. | Všechny procesy se přeruší. |
| Ladit>Pokračuj | Všechny procesy se obnoví. | Všechny pozastavené procesy se obnoví. |
| Ladění>Krok do, Přeskočení nebo Krok ven | Všechny procesy se spouštějí, zatímco probíhá aktuální krok procesu. Všechny procesy se pak přeruší. |
Aktuální kroky procesu Pozastavené procesy se obnoví. Spuštěné procesy budou pokračovat. |
| Ladění>Krokování do aktuálního procesu, Krokování přes aktuální proces nebo Krokování vystoupit z aktuálního procesu | N/A | Aktuální kroky procesu Ostatní procesy udržují svůj stávající stav (pozastavené nebo spuštěné). |
| Breakpoint okna zdroje | Všechny procesy se přeruší. | Přeruší se pouze proces zdrojového okna. |
| Okno zdroje Spustit na kurzor Zdrojové okno musí být v aktuálním procesu. |
Všechny procesy běží, zatímco proces zdrojového okna běží až k místu kurzoru a poté se zastaví. Všechny ostatní procesy se pak přeruší. |
Proces zdrojového okna se spustí na kurzor. Ostatní procesy udržují svůj stávající stav (pozastavené nebo spuštěné). |
| Procesy okna >Přerušit proces | N/A | Vybraná přerušení procesů Ostatní procesy udržují svůj stávající stav (pozastavené nebo spuštěné). |
| Procesy> Okno Pokračovat v procesu | N/A | Vybraný proces se obnoví. Ostatní procesy udržují svůj stávající stav (pozastavené nebo spuštěné). |
Vyhledání zdrojových a symbolových souborů (.pdb)
K navigaci ve zdrojovém kódu procesu potřebuje ladicí program přístup ke zdrojovým souborům a souborům symbolů. Další informace naleznete v části Zadání symbolu (.pdb) a zdrojových souborů.
Pokud nemůžete získat přístup k souborům pro proces, můžete použít okno Zpětná analýza k navigaci. Další informace naleznete v tématu Postupy: Použití okna disassembly.
Přepínání mezi procesy
Při ladění se můžete připojit k více procesům, ale v ladicím programu je v daném okamžiku aktivní jenom jeden proces. Aktivní nebo aktuální proces můžete nastavit na panelu nástrojů Umístění ladění nebo v okně Procesy . Aby bylo možné přepínat mezi procesy, musí být oba procesy v režimu přerušení.
Nastavení aktuálního procesu z panelu nástrojů Umístění ladění:
Pokud chcete otevřít panel nástrojů Umístění ladění, vyberte Zobrazit>Panely nástrojů>Umístění ladění.
Během ladění vyberte na panelu nástrojů Umístění ladění proces, který chcete nastavit jako aktuální proces z rozevíracího seznamu Proces .
Nastavení aktuálního procesu z okna Procesy:
Chcete-li otevřít okno Procesy při ladění, vyberte Ladit>procesy>.
V okně Procesy je aktuální proces označen žlutou šipkou. Poklikejte na proces, který chcete nastavit jako aktuální proces.
Přepnutí na proces ho nastaví jako současný proces pro účely ladění. Okna ladicího programu zobrazují stav aktuálního procesu a krokovací příkazy ovlivňují pouze aktuální proces.
Přestaňte ladit s více procesy
Ve výchozím nastavení, když vyberete Ladění>Zastavit ladění, ladicí program skončí nebo se odpojí od všech procesů.
Pokud byl aktuální proces spuštěn pomocí ladícího nástroje, proces se ukončí.
Pokud jste ladicí program připojili k aktuálnímu procesu, ladicí program se odpojí od procesu a ponechá proces spuštěný.
Pokud spustíte ladění procesu z řešení sady Visual Studio, připojte se k jinému procesu, který je již spuštěný, a pak zvolte Zastavit ladění, relace ladění skončí. Proces, který byl spuštěn ve Visual Studio, skončil, zatímco proces, ke kterému jste se připojili, nadále běží.
Chcete-li řídit způsob, jakým zastavení ladění ovlivňuje jednotlivé procesy, klikněte v okně Procesy pravým tlačítkem myši na proces a potom zaškrtněte nebo zrušte zaškrtnutí políčka Odpojit při zastavení ladění .
Poznámka:
Přerušení všech procesů, když jeden proces přeruší možnost ladicího programu, nemá vliv na zastavení, ukončení nebo odpojení od procesů.
Zastavení, ukončení a odpojení příkazů
Následující tabulka popisuje chování příkazů zastavení, ukončení a odpojení ladicího programu u více procesů:
| Command | Description |
|---|---|
| Ladění>Zastavit ladění | Pokud se chování nezmění v okně Procesy , ukončí se procesy spuštěné ladicím programem a připojené procesy se odpojily. |
| "Ladit>Ukončit vše" | Všechny procesy jsou ukončeny. |
| Ladit>Odpojit vše | Ladicí program se oddělí od všech procesů. |
| Okno procesů>Odpojit proces | Debugger se odpojí od vybraného procesu. Ostatní procesy udržují svůj stávající stav (pozastavené nebo spuštěné). |
| Procesy okna >Ukončit proces | Vybraný proces je ukončen. Ostatní procesy udržují svůj stávající stav (pozastavené nebo spuštěné). |
| Procesy okno >Odpojit při zastavení ladění | Pokud je tato možnost vybraná, ladění>zastavit ladění se od vybraného procesu odpojí. Pokud není vybráno 'ladění', |
Související obsah
- Zadat symbol (.pdb) a zdrojové soubory
- Připojení ke spuštěným procesům
- Procházení kódu pomocí ladicího programu
- In-Time ladění
- Ladění vícevláknových aplikací