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


Navigálás a kódban a Visual Studio hibakeresőjével

A Visual Studio hibakeresője segít navigálni a kódon az alkalmazás állapotának vizsgálatához és annak végrehajtási folyamatának megjelenítéséhez, amelyet kódléptetőnéven is ismerünk. Billentyűparancsokkal, hibakeresési parancsokkal, töréspontokkal és egyéb funkciókkal gyorsan elérheti a vizsgálandó kódot. A hibakereső navigációs parancsainak és parancsikonjainak megismerésével gyorsabban és könnyebben megtalálhatja és megoldhatja az alkalmazásproblémákat. A kódnavigációval és hibakereséssel kapcsolatos leggyakoribb billentyűparancsok listáját a billentyűparancsok hibakeresési szakaszában találja.

Jegyzet

Ha még csak most ismerkedik a kód hibakeresési lehetőségekkel, érdemes elolvasnia hibakeresést az abszolút kezdőknek, és hibakeresési technikákat és eszközöket a cikk elolvasása előtt.

Hibakeresés indítása és törés mód megadása

Egyes navigációs parancsok elindítják az alkalmazást, és automatikusan csatolják a hibakeresőt. Az alkalmazását egy adott kódsoron szünetelteti a navigáció indításához használt parancs alapján, és átlép a törésmódba (tehát az alkalmazás szüneteltetve van a hibakeresőben).

Szünet módban az alkalmazás végrehajtása fel van függesztve, miközben a függvények, változók és objektumok a memóriában maradnak. Ha a hibakereső törés módban van, végigjárhatja a kódot. A törésmód gyors megadásának két gyakori módja van:

Kódátléptető parancsok használhatók az alkalmazás elindításához, de a törésmód megadása után gyakrabban használják.

Egyes navigációs parancsokat többnyire szünet módban (vagyis a hibakeresőben szüneteltetve) használnak.

  • kódléptető parancsokat leggyakrabban törés módban használják.

  • Egyes parancsok, például Futtatás a kattintáshoz csak törés módban használhatók.

Hibakeresési mód és szüneteltetési mód

Szünet módban különböző parancsokkal navigálhat a kódjában. Megvizsgálhatja a változók értékeit a szabálysértések vagy hibák kereséséhez. Egyes projekttípusok esetében az alkalmazást is módosíthatja, ha szünet módban van.

A legtöbb hibakereső ablak, például a modulok és a Watch ablakok csak akkor érhetők el, ha a hibakereső az alkalmazáshoz van csatolva. Egyes hibakereső funkciók, például a változóértékek megtekintése a Helyiek ablakban vagy a kifejezések kiértékelése a Figyelés ablakban csak akkor érhetők el, ha a hibakereső szüneteltetve van (azaz szünet módban).

Jegyzet

Ha olyan kódot futtat, amelyhez nincs betöltve forrás- vagy szimbólumfájl (.pdb), a hibakereső megjelenít egy Forrásfájl nem található vagy Szimbólumok nem találhatóak oldalt, amely segíthet megtalálni és betölteni a fájlokat. Lásd: Szimbólum megadása (.pdb) és forrásfájlok. Ha nem tudja betölteni a szimbólumokat vagy a forrásfájlokat, a gépi kód utasításait továbbra is hibakereséssel elemezheti a Szétszerelés ablakban.

Kódléptetés

Kód lépésenkénti végrehajtása az alkalmazás kódjának lépésenkénti végrehajtását jelenti, csatolt hibakeresővel. A hibakereső lépésparancsok segítenek megfigyelni az egyes utasítások hatásait, és többet megtudni a végrehajtási folyamatról.

Belépés a kód világába

Ha hibakereséskor meg szeretne állni minden utasításon, használja a Hibakeresés>Belépés a-be, vagy válassza a F11lehetőséget.

A hibakereső a kódmegjelenítéseken halad végig, nem a fizikai vonalakon. Egy if záradék például egy sorra írható:

int x = 42;
string s = "Not answered";
if( int x == 42) s = "Answered!";

Amikor azonban ebbe a sorba lép, a hibakereső a feltételt egy lépésként, a következményt pedig egy másikként kezeli. Az előző példában a feltétel igaz.

Beágyazott függvényhívás esetén a Belépés belép a legmélyebb beágyazott függvénybe. Például, ha Step Into-t használ egy olyan híváson, mint a Func1(Func2()), akkor a hibakereső a Func2függvénybe lép.

Borravaló

Az egyes kódsorok futtatásakor rámutathat a változókra az értékeik megtekintéséhez, vagy használhatja a Helyiek és Figyelők ablakokat az értékek változásának megfigyeléséhez. A hívásverem vizuálisan is nyomon követhető a függvényekbe való belépés során. (Csak a Visual Studio Enterprise esetében lásd a hívásverem leképezési módszereit ahibakeresése közben.)

Lépkedje át a kódot, és hagyja ki néhány függvényt

A hibakeresés során előfordulhat, hogy nem érdekli egy függvény. Vagy tudhatja, hogy néhány kód működik, például a jól tesztelt kódtárkód. Az alábbi parancsokkal átléphet a kódon, miközben végrehajtja azt. A függvények továbbra is futnak, de a hibakereső kihagyja őket.

Billentyűzet parancs Hibakeresés menüparancs Leírás
F10 Lépj át Ha az aktuális sor függvényhívást tartalmaz, a Step Over futtatja a kódot, majd felfüggeszti a végrehajtást a kód első sorában a hívott függvény visszatérése után.
Műszak+F11 Lépj ki Kilépés folytatja a kód futtatását, és felfüggeszti a végrehajtást, amikor az aktuális függvény visszatér. A hibakereső átugorja az aktuális függvényt.

Futtatás egy adott helyszínre vagy függvényre

Érdemes lehet közvetlenül egy adott helyre vagy függvényre futtatni, ha pontosan tudja, hogy milyen kódot szeretne megvizsgálni, vagy ha tudja, hol szeretné elkezdeni a hibakeresést.

  • A töréspont beállítása akkor a legjobb, ha úgy gondolja, hogy újra szeretné használni a töréspontot.
  • Más módszerek a kényelem érdekében használhatók, és hasonlóak az ideiglenes töréspont beállításához.

Futtatás egy töréspontig a kódban.

Ha egyszerű töréspontot szeretne beállítani a kódban, válassza ki a kódsor melletti bal szélső margót, ahol fel szeretné függeszteni a végrehajtást. Kijelölheti a sort, majd kiválaszthatja F9, válassza a Hibakeresés>Töréspontkapcsolót, vagy kattintson a jobb gombbal, és válassza Töréspont>Töréspont beszúrásalehetőséget. A töréspont piros pontként jelenik meg a kódsor melletti bal margón. A hibakereső közvetlenül a sor futtatása előtt függeszti fel a végrehajtást.

Töréspont beállítását bemutató képernyőkép.

Töréspont beállítását bemutató képernyőkép.

A Visual Studio töréspontjai számos funkciót kínálnak, például feltételes töréspontokat és nyomkövetési pontokat. Részletekért lásd Töréspontok használata.

Futtatás függvénytörési ponthoz

Beállíthatja, hogy a hibakereső fusson, amíg el nem éri a megadott függvényt. Megadhatja a függvényt név szerint, vagy kiválaszthatja a hívásveremből.

Függvénytöréspont megadása név szerint:

  1. Válassza Hibakeresés>Új töréspont>Függvénytörési pont.

  2. Az Új függvénytörési pont párbeszédpanelen adja meg a függvény nevét, és válassza ki a nyelvét:

    Új függvénytörési párbeszédpanelt ábrázoló képernyőkép.

    Új függvénytörési párbeszédpanelt ábrázoló képernyőkép.

  3. Válassza OKlehetőséget.

Ha a függvény túlterhelt vagy több névtérben van, a Töréspontok ablakban választhatja ki a kívántat:

Töréspontok ablakot ábrázoló képernyőkép.

Töréspontok ablakot ábrázoló képernyőkép.

Függvénytörési pont kiválasztása a hívásveremből:

  1. Hibakeresés közben nyissa meg a Hívási verem ablakot, és válassza Hibakeresés>Windows>Hívásveremlehetőséget.

  2. A Hívásverem ablakban kattintson a jobb gombbal egy függvényre, és válassza a Futtatás a kurzorhozlehetőséget, vagy válassza Ctrl+F10.

A hívásverem vizuális nyomon követéséről további információt A hívásverem leképezési módszereihibakeresése során című témakörben talál.

Futás a kurzor helyére

Ha a kurzor helyére szeretne futni, a forráskódban vagy a Hívásverem ablakban jelölje ki a megszakítani kívánt sort, majd kattintson a jobb gombbal, és válassza a A kurzorhozparancsot, vagy válassza Ctrl+F10. A futtatás kurzorhoz kijelölése hasonló az ideiglenes töréspontbeállításához.

Kényszerített futtatás a kurzor helyére

A kurzor helyére futtatáshoz a forráskódban vagy a Hívási verem ablakban jelölje ki a megállítani kívánt sort, majd kattintson a jobb gombbal, és válassza a Megszakítás nélküli futtatás a kurzor pozíciójáiglehetőséget. Ha Kényszeríti a kurzorra való futtatást, kihagyja a töréspontokat és az első esélyű kivételeket, amíg a hibakereső el nem éri a kurzort tartalmazó kódsort.

Futtatás kattintással

Amíg a hibakereső szüneteltetve van, rámutathat a forráskódban egy utasításra, vagy a Szétszerelés ablakban, és kiválaszthatja a Futtatás ide zöld nyíl gombra. A Kattintásig futtatás használata hasonló egy ideiglenes megszakítási pontbeállításához.

Képernyőkép, amely megmutatja a

Kényszerített futtatás kattintáshoz

Amíg a hibakereső szüneteltetve van, rámutathat a forráskódban lévő utasításra, miközben lenyomja a Shift billentyűt, majd válassza a Futtatás kényszerítése erre a pontra (kettős zöld nyíl) lehetőséget. Ha ezt a lehetőséget választja, az alkalmazás csatolja a Visual Studio hibakeresőt, és a kurzor helyén szünetel. A végrehajtás során talált töréspontok és első esélyes kivételek ideiglenesen letiltásra kerülnek.

A kattintásra kényszerítés parancsot ábrázoló képernyőkép.

Jegyzet

Kattintásra kényszerítés a Visual Studio 2022-től érhető el.

Kód manuális betörése

Ha egy futó alkalmazásban a következő elérhető kódsorhoz szeretne ugrani, válassza a Hibakeresés>Az összes megszakításaparancsot, vagy válassza a Ctrl+Alt+Breakparancsot.

Nem felhasználói kód hibakeresése

Alapértelmezés szerint a hibakereső csak az alkalmazáskódot próbálja hibakeresésre, ha engedélyezi a Just My Codenevű beállítást. A funkció különböző projekttípusokhoz és nyelvekhez való működéséről és testreszabásáról a Just My Codecímű témakörben talál további információt.

Ha a hibakeresés során meg szeretné tekinteni a keretrendszerkódot, a nem Microsoft-kódtárkódot vagy a rendszerhívásokat, letilthatja a Just My Code funkciót.

Nyissa meg az Eszközök (vagy hibakeresés) >beállítások panelt, bontsa ki az Összes beállítás>hibakeresése>általános szakaszt, és törölje a jelet az Csak a kód engedélyezése jelölőnégyzetből.

Nyissa meg az Eszközök (vagy Hibakeresés) >beállítások párbeszédpanelt, bontsa ki azÁltalános> szakaszt, és törölje a jelet a Csak saját kód engedélyezése jelölőnégyzetből.

Ha a Csak saját kód le van tiltva, a nem felhasználó kód jelenik meg a hibakereső ablakaiban, és a hibakereső be tud lépni a nem felhasználói kódba.

Jegyzet

A Just My Code nem támogatott eszközprojektek számára.

Rendszerkód hibakeresése

Ha betöltötte a Microsoft rendszerkód hibakeresési szimbólumait, és letiltotta a Just My Code-ot, ugyanúgy léphet be egy rendszerhívásba, mint bármely más hívásra.

A Visual Studio 2022 17.7-es verziójától kezdve automatikusan lefordíthatja a .NET-kódot, ha külső kódba lép anélkül, hogy manuálisan be kellene töltenie a hibakeresési szimbólumokat. További információ: Forráskód létrehozása .NET-szerelvényekből a hibakeresés során.

A Microsoft-szimbólumok betöltéséről további információt a Szimbólumfájlok helyének konfigurálása és a beállítások betöltésecímű témakörben talál.

Szimbólumok betöltése egy adott rendszerösszetevőhöz:

  1. Hibakeresés közben nyissa meg a Modulok ablakot a Hibakeresés>Windows>Modulok vagy a Ctrl +Alt+Ubillentyűkombinációval.

  2. A Modulok ablakban láthatja, hogy mely modulok rendelkeznek a Szimbólum állapota oszlopba betöltött szimbólumokkal. Kattintson a jobb gombbal arra a modulra, amelyhez szimbólumokat szeretne betölteni, majd válassza Szimbólumok betöltéselehetőséget.

Lépés a felügyelt kód tulajdonságaiba és operátoraiba

A hibakereső alapértelmezés szerint a felügyelt kód tulajdonságaira és operátoraira lép. A legtöbb esetben ez a viselkedés jobb hibakeresési élményt nyújt. A tulajdonságokba vagy operátorokba való lépés engedélyezéséhez válassza a Hibakeresés>Beállításoklehetőséget. Az Hibakeresés>Általános lapon törölje a Lépés a tulajdonságok és operátorok (csak felügyelt) jelölőnégyzet jelölését.

Az egérmutató áthelyezése a végrehajtási folyamat módosításához

A sárga végrehajtási mutató áthelyezésével módosíthatja a következő futtatási utasítást. Ezt a funkciót törés módban is használhatja.

Ez egy speciális hibakereső funkció. További információ: A végrehajtási mutató áthelyezése.