Megosztás a következőn keresztül:


A végrehajtási mutató áthelyezése a végrehajtási folyamat módosításához a hibakeresőben

A hibakeresés során manuálisan is áthelyezheti a végrehajtási mutatót a következő futtatási utasítás módosításához. Az egérmutató áthelyezése olyan helyzetekben hasznos, mint egy ismert hibát tartalmazó kód kihagyása, és a hibakereső fejlettebb funkciója.

A végrehajtási folyamat módosítása

Ha a hibakereső szüneteltetve van, a forráskód vagy a Szétbontás ablak margóján egy sárga nyíl jelzi a következő futtatás helyét. A nyíl mozgatásával módosíthatja a következő, futtatható utasítást. Átugorhatja a kódot, vagy visszatérhet egy előző sorba.

Az egérmutató áthelyezését bemutató animáció.

Ha módosítani szeretné a következő futtatandó utasítást, a hibakeresőnek törés módban kell lennie. A forráskódban vagy a Szétszerelés ablakban húzza a sárga nyilat egy másik vonalra, vagy kattintson a jobb gombbal a következő futtatni kívánt vonalra, és válassza a Következő utasítás beállítása lehetőséget.

A programszámláló közvetlenül az új helyre ugrik. A régi és az új végrehajtási pontok közötti utasítások nem futnak. Ha azonban a végrehajtási pontot visszafelé helyezi át, a beavatkozó utasítások nem lesznek visszavonva.

Caution

  • A következő utasítás áthelyezése egy másik függvénybe vagy hatókörbe általában hívásverem sérülését okozza, ami futásidejű hibát vagy kivételt okoz. Ha megpróbálja áthelyezni a következő utasítást egy másik hatókörbe, a hibakereső figyelmeztetést ad, és lehetőséget ad a művelet megszakítására.
  • A Visual Basicben nem helyezheti át a következő utasítást egy másik hatókörbe vagy függvénybe.
  • Natív C++-ban, ha engedélyezve van a futtatókörnyezet-ellenőrzés, a következő utasítás beállítása kivételt okozhat, amikor a végrehajtás eléri a metódus végét.
  • Ha a Szerkesztés és a Folytatás engedélyezve van, a Következő utasítás beállítása meghiúsul, ha olyan módosításokat végzett, amelyeket a Szerkesztés és a Folytatás nem tud azonnal újraképezni. Ez a helyzet például akkor fordulhat elő, ha kódot szerkesztett egy catch blokkban. Ha ez történik, hibaüzenet jelzi, hogy a művelet nem támogatott.
  • A felügyelt kódban nem helyezheti át a következő utasítást, ha:
    • A következő utasítás az aktuális utasítástól eltérő metódusban van.
    • A hibakeresést a Just-In-Time indította el.
    • A hívásverem visszafejtése folyamatban van.
    • A rendszer egy System.StackOverflowException vagy System.Threading.ThreadAbortException kivételt adott ki.