Přesunutí ukazatele provádění pro změnu toku provádění v ladicím programu

Při ladění můžete ukazatel provádění ručně přesunout a změnit další příkaz, který se spustí dále. Přesunutí ukazatele je užitečné v situacích, jako je přeskočení kódu, který obsahuje známou chybu, a je pokročilejší funkcí ladicího programu.

Změna toku provádění

Když je ladicí program pozastavený, žlutá šipka na okraji zdrojového kódu nebo okno Zpětné překladu označí umístění příkazu, který se spustí dále. Můžete změnit další příkaz, který se spustí přesunutím této šipky. Kód můžete přeskočit nebo se vrátit na předchozí řádek.

Animation that shows how to move the pointer.

Animation that shows how to move the pointer.

Pokud chcete změnit další příkaz, který se spustí, musí být ladicí program v režimu přerušení. Ve zdrojovém kódu nebo v okně zpětného překladu přetáhněte žlutou šipku na jinou čáru nebo klikněte pravým tlačítkem myši na řádek, který chcete spustit, a vyberte Nastavit další příkaz.

Čítač programu přeskočí přímo do nového umístění. Pokyny mezi starými a novými spouštěcími body se nespustí. Pokud ale posunete bod provádění zpět, pokyny pro intervenování se neodejdou zpět.

Upozornění

  • Přesunutí dalšího příkazu do jiné funkce nebo oboru obvykle způsobuje poškození zásobníku volání, které způsobuje chybu nebo výjimku za běhu. Pokud se pokusíte přesunout další příkaz do jiného oboru, ladicí program zobrazí upozornění a šanci operaci zrušit.
  • V jazyce Visual Basic nemůžete přesunout další příkaz do jiného oboru nebo funkce.
  • Pokud máte v nativním jazyce C++ povolené kontroly za běhu, může nastavení dalšího příkazu způsobit výjimku, když provádění dosáhne konce metody.
  • Pokud je povolená možnost Upravit a pokračovat, příkaz Nastavit další selže, pokud jste provedli úpravy, které upravit a pokračovat nelze okamžitě namapovat. K této situaci může dojít například v případě, že jste upravili kód v bloku catch. Pokud k tomu dojde, zobrazí se chybová zpráva s oznámením, že operace není podporovaná.
  • Ve spravovaném kódu nemůžete následující příkaz přesunout, pokud:
    • Další příkaz je v jiné metodě než aktuální příkaz.
    • Ladění spustilo ladění za běhu.
    • Probíhá odvíjení zásobníku volání.
    • Byla vyvolána výjimka System.StackOverflowException nebo System.ThreadAbortException.