Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
Állítson be egy töréspontot, és indítsa el az appot.
Futtatás egy adott helyszínre vagy funkcióra.
A Visual Studio kódszerkesztőjében például a Run To Cursor paranccsal indíthatja el az alkalmazást a hibakereső csatlakoztatásával, és beírhatja a törésmódot. Ezután lépésparancsokkal navigálhat a kódban.
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.
Kódban navigálás szünet módban
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ó:
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.
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:
Válassza Hibakeresés>Új töréspont>Függvénytörési pont.
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:
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:
Függvénytörési pont kiválasztása a hívásveremből:
Hibakeresés közben nyissa meg a Hívási verem ablakot, és válassza Hibakeresés>Windows>Hívásveremlehetőséget.
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é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.
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:
Hibakeresés közben nyissa meg a Modulok ablakot a Hibakeresés>Windows>Modulok vagy a Ctrl +Alt+Ubillentyűkombinációval.
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.