Sdílet prostřednictvím


Spuštění, pozastavení a ukončení ladicího programu sady Visual Studio a jeho ovládání

V tomto tématu

V tomto tématu

Spuštění ladění

  • Připojit k procesu

  • Automaticky spustit aplikaci v ladicím programu

Navigace v relaci ladění kódu

  • Rozdělit na kód pomocí zarážky nebo zrušit vše

  • Krok do, nad nebo z kódu

  • Spustit v zadaném umístění nebo funkci

  • Nastavit další příkaz ke spuštění

  • Omezit krokování pouze můj kód

  • Krokovat s vnořením volání systému

  • Krokovat s vnořením vlastností a operátorů ve spravovaném kódu

Zastavení ladění

Spuštění ladění

Je-li otevřeno řešení sady Visual Studio, je k dispozici tři možnosti pro spuštění ladění:

Zvolte ladění, Spuštění ladění (klávesnice: F5).

Vaše aplikace spustí a až se spustí:

  • Ladicí program dosáhne zarážky.

  • Můžete zvolit Zastavit ladění na ladění nabídky.

  • Je vyvolána výjimka.

  • Ukončení aplikace.

Zvolte ladění, Step Into (klávesnice: F11) nebo ladění, Krok přes (klávesnice: F10).

Vaše aplikace spustí a pak rozdělí na prvním řádku.

V okně zdroj, vyberte řádek spustitelný kód a zvolte Run to Cursor v místní nabídce.

Spuštění aplikace a spuštěn, dokud nebude dosaženo zarážky nebo umístění kurzoru, nastane dříve.

y740d9d3.collapse_all(cs-cz,VS.110).gifPřipojit k procesu

Ladicí program můžete také připojit k programu, která je spuštěna v procesu mimo sadu Visual Studio.Po připojení k programu pomocí příkazů pro spuštění ladicího programu, kontrolovat stav programu a tak dále.Možnost kontrolovat program může být omezen, v závislosti na tom, zda program byl vytvořen s ladicími informacemi a zda máte přístup ke zdrojovému kódu programu a zda je společný jazyk runtime JIT kompilátor sledování informací o ladění.

Chcete-li se připojit k procesu, který je spuštěn v místním počítači

Zvolte ladění, připojit k procesu.Na připojit k procesu dialogové okno Vyberte proces z Procesy k dispozici seznam a pak zvolte Attach.

Připojit k procesu, dialogové okno

Další informace naleznete v tématu Připojování k spuštěných procesů.

y740d9d3.collapse_all(cs-cz,VS.110).gifAutomaticky spustit aplikaci v ladicím programu

V některých případech budete muset debug spouštěcí kód aplikace, který je spuštěn jiný proces.Příkladem služeb a vlastní nastavení akcí.V těchto scénářích může být spuštění ladicího programu a automaticky připojit při spuštění aplikace.

  1. Spusťte Editor registru (regedit.exe).

  2. Přejděte Možnosti spuštění souboru NT\CurrentVersion\Image HKEY_LOCAL_MACHINE\Software\Microsoft\Windows složky.

  3. Vyberte složku aplikace, který chcete spustit v ladicím programu.

    Pokud název aplikace není uvedena jako podřízené složky, vyberte Možnosti spuštění souboru bitové kopie a pak zvolte Nový, klíče v místní nabídce.Vyberte nový klíč, zvolte Přejmenovat v místní nabídce a potom zadejte název aplikace.

  4. V místní nabídce na složku aplikace, zvolte Nový, Hodnotu řetězce.

  5. Změňte název nové hodnoty z New Value na ladicí program.

  6. V místní nabídce položky debugger, zvolte změnit.

  7. V dialogovém okně Upravit řetězec zadejte vsjitdebugger.exe v Údaj pole.

    Upravit řetězec dialogové okno

Automatické ladění spustit položku regedit.exe

V tomto tématu

y740d9d3.collapse_all(cs-cz,VS.110).gifRozdělit na kód pomocí zarážky nebo zrušit vše

Při ladění aplikace s ladicí program sady Visual Studio, aplikace je spuštění (spouštění) nebo je v režimu pozastavení.

Ladicí program rozdělí spuštění bude aplikace při spuštění dosáhne zarážky, nebo když dojde k výjimce.Také můžete přerušit provádění kdykoli ručně.

Zarážka je signál, který dává pokyn ladicímu programu dočasně pozastavit provádění vaši aplikace v určitém místě.Při spouštění je pozastaveno na zarážce, se říká programu v režimu pozastavení.Přejít do režimu přerušení zastavení nebo ukončení provádění programu; spuštění lze kdykoli obnovit.

Většina funkcí ladicího programu, jako je například zobrazení hodnot proměnných v okně místních položek nebo vyhodnocování výrazů v okně kukátka jsou k dispozici pouze v režimu pozastavení.Zůstanou všechny prvky vaší aplikace (funkce, proměnné a objekty zůstanou v paměti, například), ale jejich pohyby a činnosti jsou pozastaveny.Během režimu pozastavení můžete zkoumat pozice na prvky a státy porušení či štěnic.Můžete také provést úpravy aplikace v režimu break

Můžete nakonfigurovat zarážky k pozastavení provádění založené na určité podmínky.Viz téma Pomocí zarážek a Tracepoints.Tato část popisuje dva základní způsoby, jak proniknout do kódu.

Nastavit zarážky v kódu

Pro nastavení jednoduché zarážky v kódu, otevřete zdrojový soubor v editoru Visual Studio.Nastavte kurzor na řádek kódu, který chcete rozdělit na a pak zvolte zarážky, Vložit zarážku v kontextové nabídce (klávesnice: F9.Ladicí program přeruší provádění vpravo před provedením řádku.

Nastavit zarážku

Body přerušení v aplikaci Visual Studio poskytuje bohatou sadu další funkce, jako je například podmíněné zarážky a tracepoints.Viz téma Pomocí zarážek a Tracepoints.

Ručně rozdělit na kód

Chcete-li rozdělit na další řádky kódu ve vykonávajícím app, zvolte ladění, Konec všech (klávesnice: Ctrl+Alt+Break).

  • Jestliže ladíte s povolenou možností pouze můj kód v projektu je rozdělit na další řádek kódu.Viz téma Restrict stepping to Just My Code.

  • Jestliže ladíte více programů, bod přerušení nebo zrušit všechny příkaz ovlivní všechny programy, které se právě ladí ve výchozím nastavení.Viz Change the break behavior of multiple processes v tomto tématu.

  • Pokud můžete přerušit při provádění kódu bez odpovídajícího zdroje nebo symbol (.pdf) soubory), ladicí program se zobrazí Zdroje nejsou nalezeny soubory nebo Symboly nebyl nalezen stránky, které vám pomohou najít příslušné soubory.Viz téma Vyhledání souborů se symboly (PDB), zdrojových a binárních souborů.

    Pokud nelze získat přístup k podpůrným souborům, můžete stále ladit pokynů okno zpětný překlad sestavení.

y740d9d3.collapse_all(cs-cz,VS.110).gifKrok do, nad nebo z kódu

Jedním z nejběžnější postupy ladění je krokování.Krokování se provádí vždy jeden řádek kódu.Když jste zastaveno spouštění, jako je spuštění ladicího programu k zarážku, můžete použít tři ladění příkazy nabídky ke krokování kódu:

Příkaz nabídky

Klávesové zkratky

Description

Krokovat s vnořením

F11

Pokud řádek obsahuje volání funkce Step Into provede pouze samotné volání a poté zastaví na prvním řádku kódu uvnitř funkce.V opačném případě se Step Into spustí další dotaz.

Krok přes

F10

Pokud řádek obsahuje volání funkce Krok přes volaná funkce spustí a zastaví na prvním řádku kódu uvnitř volání funkce.V opačném případě se Step Into spustí další dotaz.

Krok

Shift+F11

Krok ven pokračuje v provádění kódu dokud vrátí, pak konce vratky bodě volání funkce.

  • Vnořená funkce volání Step Into kroky do nejvíce hluboko vnořené funkce.Použijete-li Step Into na volání, například Func1(Func2()), ladicí program vstoupí do funkce Func2.

  • Ladicí program skutečně projde příkazy kódu, spíše než fyzické řádky.Například if klauzuli lze zapsat na jednom řádku:

    int x = 42;
    string s = "Not answered";
    if( int x == 42) s = "Answered!";
    
    Dim x As Integet = 42
    Dim s As String = "Not answered"
    If x = 42 Then s = "Answered!"
    

    V případě, že jste se přesunuli do tohoto řádku, ladicí program zpracuje podmínky jako jeden krok a následky, které jsou jiné (v tomto příkladu je podmínka PRAVDA).

y740d9d3.collapse_all(cs-cz,VS.110).gifSpustit v zadaném umístění nebo funkci

Někdy budete chtít spustit na určité místo v kódu a potom zastavení provádění.Máte-li zarážku na umístění, kam chcete zrušit, zvolte ladění, Spuštění ladění Pokud jste práci nezahájili ladění, nebo, nebo ladění, pokračovat.(V obou případech F5 je klávesová zkratka).Ladicí program zastaví na další zarážku v provádění kódu.Zvolte ladění, pokračovat až k zarážce chcete.Viz Set breakpoints in the code v tomto tématu.

Můžete také spustit do umístění kurzoru v editoru kódu nebo spustit určené funkce.

Spustit až do místa kurzoru

Chcete-li spustit až do místa kurzoru, umístěte kurzor na linku spustitelného kódu v okně zdroj.V okně editor kontextové nabídky zvolte Run to Cursor.

Spustit funkci v zásobníku volání

V Zásobník volání okno, vyberte funkci a zvolte Run to Cursor z kontextové nabídky.

Spustit funkci určený názvem

Ladicí program ke spuštění aplikace, dokud nedosáhne určenou funkci, můžete příkaz.Můžete zadat název funkce nebo je možné ze zásobníku volání.

Chcete-li zadat název funkce, zvolte ladění, Nová zarážka, ukončit u funkce, zadejte název funkce a další identifikační údaje.

Dialogové okno Nová zarážka

Je-li funkce je přetížena, nebo je v oboru názvů více, můžete použít funkce, které chcete Zvolit zarážky dialogové okno.

Zarážky dialogové okno Zvolit

y740d9d3.collapse_all(cs-cz,VS.110).gifNastavit další příkaz ke spuštění

Po zrušení do ladicího programu, můžete přesunout bod spuštění chcete-li nastavit další příkaz kód, který bude proveden.Žlutá šipka na okraji zdroj nebo okno zpětný překlad označuje umístění další příkaz ke spuštění.Přesunutím této šipky můžete přeskočit přes část kódu nebo návrat zpět do řádku dříve spuštěn.To můžete použít v situacích, jako je například vynechání části kódu, který obsahuje známé chyby.

Priklad2

Chcete-li nastavit další příkaz ke spuštění, použijte jeden z těchto postupů:

  • V okně zdroj přetáhněte žluté šipky na místo, kam chcete nastavit dalšího příkazu ve stejném zdrojovém souboru

  • V okně zdroj, nastavte kurzor na řádek, který chcete spustit další a zvolte Další příkaz Set v místní nabídce.

  • V okně rozebrání nastavte kurzor na sestavení instrukce, kterou chcete spustit další a zvolte Další příkaz Set v místní nabídce.

Poznámka k upozorněníUpozornění

Nastavení další příkaz způsobí, že čítače programu přejít přímo do nového umístění.Opatrně pomocí následujícího příkazu:

  • Pokyny mezi body staré a nové spuštění již nebudou provedeny.

  • Je-li bod spuštění přesunout dozadu, nejsou požadovanými pokyny vrátit zpět.

  • Přesunutí další příkaz pro jinou funkci nebo rozsah obvykle za následek poškození zásobníku volání, způsobuje chybu běhu nebo výjimku.Při přesunutí dalším příkazu do jiného oboru ladicí program otevře dialogové okno s upozorněním a dává možnost zrušit operaci.V jazyce Visual Basic nelze přesunout dalším příkazu do jiného oboru nebo funkce.

  • V nativním C++ máte-li spuštění kontroly povoleno, nastavení dalšího příkazu může způsobit výjimku, která je vyvolána při spuštění dosáhne konce metody.

  • Při úpravě a je povoleno pokračovat, Další příkaz Set se nezdaří, pokud byly provedeny úpravy, které Uprav a pokračuj nemohou přemapovat okamžitě.Tato situace může nastat, například pokud jste upravili kód v bloku catch.To se projeví.Zobrazí chybová zpráva oznamující, že tato operace není podporována.

[!POZNÁMKA]

Ve spravovaném kódu nelze přesunout další prohlášení za následujících podmínek:

  • Další je v jiné metody než aktuální příkaz.

  • Ladění byla spuštěna pomocí Just-In-Time ladění.

  • Probíhá atribut callstack unwind.

  • Byla vyvolána výjimka System.StackOverflowException nebo System.Threading.ThreadAbortException.

Dalším příkazu nelze nastavit, pokud je spuštěna aplikace.Chcete-li nastavit další příkaz, ladicí program musí být v režimu pozastavení.

y740d9d3.collapse_all(cs-cz,VS.110).gifOmezit krokování pouze můj kód

V některých případech při ladění, můžete chtít zobrazit pouze kód jste napsal a ignorování jiného kódu, jako je například systémové volání.To lze provést pomocí pouze můj kód ladění.Pouze můj kód skryje bez uživatelského kódu tak, aby v ladicím programu systému windows nezobrazí.Pokud jste se přesunuli, ladicí program projde všechny bez uživatelského kódu, ale nezastaví se v něm.

Chcete-li povolit nebo zakázat pouze můj kód ladění, zvolte ladění, možností a nastavení.Na ladění, Obecné stránky, zaškrtnutí nebo zrušení zaškrtnutí Povolit pouze můj kód.

Uživatelský kód odlišit od jiných uživatelského kódu, pouze můj kód vypadá na soubory symbolů (PDB) a program optimalizace.

Ve standardní ladicí sestavení je optimalizace vypnuta a symboly ladění jsou vytvářeny pro všechny moduly.Při spuštění ladicího sestavení těchto modulů jsou považovány za uživatelský kód.Ale funkce knihovny, která je optimalizována a nemá symboly ladění není považován za uživatelský kód.Pouze můj kód zabraňuje spuštění ze zastavení se na zarážkách v kódu knihovny není obvykle vás zajímají ladění kódu.V okně zarážky tyto zarážky zobrazí s ikonou zakázáno zarážky.

Chcete-li zobrazit všechny kódu a zastavit na všechny zarážky, můžete vypnout ladění pouze můj kód pomocí Možnosti dialogové okno.

Tři atributy také ovlivnit, co ladicí program považuje tento kód: DebuggerNonUserCodeAttribute říká ladění kódu je použit k není můj kód.DebuggerHiddenAttributeSkryje kód z ladicího programu, i v případě, že pouze můj kód je vypnuto.DebuggerStepThroughAttributedává pokyn ladicímu programu krokovat kód, který je použit, spíše než krok do kódu.

Pokud je povoleno pouze můj kód, můžete použít Zrušit všechny na ladění nabídky a zastavit provádění v místě v případě, že není žádný můj kód k zobrazení.Pokud k tomu dojde, zobrazí se žádný kód.Navíc pokud se rozhodnete Krok příkaz, jej můžete přejít na další řádek můj kód.

Konec programové příkazy, jako je například Visual Basic Stop příkazy, jsou zpracovány jinak.Ladicí program se vždy dělí na tyto příkazy i v případě, že je povolena pouze můj kód.V takovém případě bez uživatelského kódu je zobrazen místo skryté, ale krokování stále můžete přejít z jiných uživatelský kód na další řádek můj kód.

[!POZNÁMKA]

Pouze můj kód není podporována pro projekty zařízení.

y740d9d3.collapse_all(cs-cz,VS.110).gifKrokovat s vnořením volání systému

Pokud jste načetli symboly ladění kódu systému a pouze můj kód není povoleno, můžete se stejně jako jiné volání do systémové volání kroku.

Chcete-li zjistit, jak zakázat pouze můj kód, vizRestrict stepping to Just My Code

Přístup k souborům Microsoft symbol, viz Pomocí systému Windows a dalších symbolů Microsoft v Vyhledání souborů se symboly (PDB), zdrojových a binárních souborů téma.

Chcete-li načíst symboly pro určité součásti systému, při ladění:

  1. Otevřete okno moduly (klávesnice: Ctrl+Alt+U).

  2. Vyberte modul, který chcete načíst symboly pro.

    Můžete zjistit, které moduly mají symboly, které jsou načteny pohledem Symbol stav sloupce.

  3. Zvolte Zatížení symboly v místní nabídce.

y740d9d3.collapse_all(cs-cz,VS.110).gifKrokovat s vnořením vlastností a operátorů ve spravovaném kódu

Ladicí program vstoupí prostřednictvím vlastností a operátorů ve spravovaném kódu ve výchozím nastavení.Ve většině případů to poskytuje lepší ladění.Chcete-li povolit krokování vlastnosti nebo operátory, zvolte ladění, možností a nastavení.Na ladění, Obecné stránky, zrušte Krok přes vlastností a operátorů (pouze pro správce) políčko

V tomto tématu

Zastavení ladění

Zastavení ladění znamená ukončení relace ladění.Zastavení znamená ukončení procesu jsou ladění a ukončení relace ladění.Nelze zaměňovat s nejnovější spuštění, které dočasně zastaví provádění procesu, který ladíte, ale ponechá aktivní relace ladění.Odpojení od procesu ladění procesu se zastaví, ale ponechá ji systémem.

Zastavení ladění ze sady Visual Studio

Zvolte ladění, zastavení ladění.

Zastavit ladění ukončí proces probíhá ladění, je-li program byl spuštěn ze sady Visual Studio.Pokud jste připojili k procesu namísto spuštění z aplikace Visual Studio, pokračuje v procesu spuštění.

Zastavení ladění a restartování

Zvolte ladění, restartování aktuální relaci ladění zastavení a restartování při spuštění projektu v debuggeru.

Ukončete aplikace, který je právě laděn.

Při ukončení aplikace, která je právě laděna ladění automaticky zastaví.