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.
Ebből a témakörből megismerhet néhány hatékonyságnövelő tippet és trükköt a Visual Studio hibakeresőjéhez. A hibakereső alapfunkcióinak megtekintéséhez tekintse meg a hibakereső első pillantását. Ebben a témakörben olyan területeket tárgyalunk, amelyek nem szerepelnek a funkcióbemutatóban.
Billentyűparancsok
A hibakereséssel kapcsolatos leggyakoribb billentyűparancsok listáját a billentyűparancsok Hibakeresés szakaszában találja.
Adattippek rögzítése
Ha a hibakeresés során gyakran rámutat az adattippekre, érdemes rögzítenie a változó adattippét, hogy gyors hozzáférést biztosítson magának. A változó az újraindítás után is rögzítve marad. Az adattipp rögzítéséhez kattintson a rögzítés ikonra, miközben rámutat rá. Több változót is rögzíthet.
Az adattippeket számos más módon is testre szabhatja, például kibonthatja az adattippeket ( ragadós adattippeket), vagy transzparenssé teheti az adattippeket. További információ: Adatértékek megtekintése az adatleírásokban a kódszerkesztőben.
A kód szerkesztése és a hibakeresés folytatása (C#, VB, C++)
A Visual Studio által támogatott legtöbb nyelven szerkesztheti a kódot a hibakeresési munkamenet közepén, és folytathatja a hibakeresést. A funkció használatához kattintson a kódra a hibakeresőben szüneteltetett kurzorral, végezze el a módosításokat, és nyomja le F5, F10vagy F11 billentyűkombinációt a hibakeresés folytatásához.
A funkció használatáról és a funkciók korlátozásáról további információt a Szerkesztés és a Folytatás című témakörben talál.
XAML-kód szerkesztése és a hibakeresés folytatása
A XAML-kód hibakeresési munkamenet során történő módosításához tekintse meg a XAML-kód írásáról és hibakereséséről az XAML Hot Reload segítségével.
Nehezen reprodukálható problémák hibakeresése
Ha nehéz vagy időigényes újra létrehozni egy adott állapotot az alkalmazásban, fontolja meg, hogy a feltételes töréspont használata segíthet-e. Feltételes töréspontok és szűrő töréspontok használatával elkerülheti az alkalmazáskódba való betörést, amíg az alkalmazás meg nem adja a kívánt állapotot (például olyan állapotot, amelyben egy változó rossz adatokat tárol). A feltételek kifejezésekkel, szűrőkkel, találatszámokkal stb. állíthatók be.
Feltételes töréspont létrehozása
Kattintson a jobb gombbal egy töréspont ikonra (a piros gömbre), és válassza a Feltételek lehetőséget.
A Töréspont beállításai ablakban írjon be egy kifejezést.
Ha más típusú feltételt szeretne, válassza a Feltételes kifejezés helyett a Szűrés lehetőséget a Töréspont beállításai párbeszédpanelen, majd kövesse a szűrőtippeket.
A hibakeresőben megjelenítendő adatok konfigurálása
C#, Visual Basic és C++ (csak C++/CLI-kód esetén) esetén megadhatja a hibakeresőnek, hogy milyen információkat jelenítsen meg a DebuggerDisplay attribútum használatával. A C++ kód esetében ugyanezt Natvis-vizualizációkkal is megteheti.
Csatolja ismételten ugyanahhoz az alkalmazáshoz
Amikor a csatolást a folyamathoz használja, gyorsan újracsatlakoztathatja azt a folyamatot, amelyhez korábban csatolta a Debug>Reattach to Process (Shift+Alt+P) lehetőséget választva. Ha ezt a parancsot választja, a hibakereső azonnal megpróbál csatlakozni az utolsó folyamathoz azzal, hogy először megpróbálja egyeztetni az előző folyamatazonosítót, és ha ez nem sikerül, az előző folyamat névvel próbálkozik. Ha nem található egyezés, vagy ha több folyamat neve azonos, megnyílik a Folyamat csatolása párbeszédpanel, így kiválaszthatja a megfelelő folyamatot.
Hatókörön kívüli objektum nyomon követése (C#, Visual Basic)
A változók könnyen megtekinthetők olyan hibakereső ablakokkal, mint a Figyelő ablak. Ha azonban egy változó kimegy a hatókörből a Figyelő ablakban, észreveheti, hogy a változó szürkén jelenik meg. Egyes alkalmazásforgatókönyvekben a változó értéke akkor is megváltozhat, ha a változó nincs hatókörben, és érdemes lehet alaposan megnézni (például egy változó szemétgyűjtést kaphat). A változó nyomon követéséhez hozzon létre egy objektumazonosítót a Figyelő ablakban.
Objektumazonosító létrehozása
Állítson be egy töréspontot egy követni kívánt változó közelében.
Indítsa el a hibakeresőt (F5), és állítsa le a töréspontot.
Keresse meg a változót a Helyiek ablakban (Windows-helyiek > hibakeresése>), kattintson a jobb gombbal a változóra, és válassza az Objektumazonosító létrehozása lehetőséget.
Látnia kell egy $-t és egy számot a Helyiek ablakban. Ez a változó az objektumazonosító.
Kattintson a jobb gombbal az objektumazonosító változóra, és válassza a Watch hozzáadása parancsot.
További információ: Objektumazonosító létrehozása.
Függvények visszatérési értékeinek megtekintése
A 2022-es Visual Studio 17.12-es verziójától kezdve beágyazott függvények visszatérési értékeit tekintheti meg. További információ: Metódushívások beágyazott visszatérési értékeinek megtekintése a kódszerkesztőben.
A visszatérési értékeket az Automatikusak ablakban is megtekintheti. További információ: Visszatérési értékek megtekintése az Autos ablakban.
A függvények visszatérési értékeinek megtekintéséhez tekintse meg az Autos ablakban megjelenő függvényeket , miközben lépeget a kódon. Egy függvény visszatérési értékének megtekintéséhez győződjön meg arról, hogy a kívánt függvény már végrehajtásra került (nyomja le egyszer az F10 billentyűt, ha jelenleg le van állítva a függvényhívásban). Ha az ablak be van zárva, használja a Debug > Windows > Autos-t az Autos ablak megnyitásához.
A Figyelő és az Azonnali ablakban is használhat álvariánsokat, például$ReturnValue.
Emellett funkciókat is megadhat a Azonnali ablakban a visszatérési értékek megtekintéséhez. (Nyissa meg a Windows > Azonnali hibakeresési >funkcióval.)
Sztringek vizsgálata egy vizualizáló eszközben
Karakterláncok használatakor hasznos lehet a teljes formázott karakterlánc megtekintése. Egyszerű szöveges, XML-, HTML- vagy JSON-sztring megtekintéséhez kattintson a nagyító ikonra
, miközben egy sztringértéket tartalmazó változó fölé mutat.
Egy karakterlánc-ábrázoló segíthet megállapítani, hogy egy karakterlánc hibás-e a karakterlánc típusától függően. Egy üres Érték mező például azt jelzi, hogy a vizualizáció típusa nem ismeri fel a sztringet. További információ: Sztringábrázoló párbeszédpanel.
A hibakereső ablakokban megjelenő néhány más típushoz, például a DataSethez és a DataTable objektumhoz egy beépített vizualizációt is megnyithat.
Memóriahasználat elemzése
Készíthet és hasonlíthat össze pillanatképeket a halomról, optimalizálhatja a memóriahasználatot, és memóriavesztést kereshet a memóriahasználati eszközökkel. További információ: Memóriaelemző eszköz kiválasztása.
Rendszermemória-dump fájl létrehozása
A memóriaképfájl egy pillanatkép, amely az alkalmazáshoz egy adott időpontban betöltött folyamatokat és modulokat jeleníti meg. A halomadatokkal ellátott memóriakép tartalmazza az alkalmazás akkori memóriájának pillanatképét is. A dumpokat leginkább olyan gépek hibaelhárítására használják, amelyekhez a fejlesztők nem férnek hozzá.
Ha dumpfájlt szeretne menteni, válassza a Hibakeresés > Dump mentése másként lehetőséget.
A memóriaképfájl elemzéséhez válassza a Fájl > Megnyitás lehetőséget a Visual Studioban. Ha a memóriaképfájl használatával szeretné elindítani a hibakeresést, válassza a Csak felügyelt hibakeresés, a Csak natív hibakeresés, a Vegyes hibakeresés vagy a Felügyelt memória hibakeresése lehetőséget.
További információért lásd: Memóriaképfájlok.
Kódtörés a kezelt kivételeken
A hibakereső nem kezelt kivételekre bontja a kódot. A kezelt kivételek (például a try/catch blokkon belüli kivételek) azonban hibák forrása is lehetnek, és érdemes lehet kivizsgálni, hogy mikor fordulnak elő. A hibakeresőt úgy konfigurálhatja, hogy kódra bontsa a kezelt kivételeket, valamint a Kivétel beállításai párbeszédpanel beállításainak konfigurálásával. A párbeszédpanel megnyitásához válassza a Windows > kivételbeállítások hibakeresése > lehetőséget.
A Kivétel beállításai párbeszédpanelen megadhatja a hibakeresőnek, hogy megálljon a kódban bizonyos kivételeknél. Az alábbi ábrán a hibakereső minden alkalommal megszakítja a kód végrehajtását, amikor a System.NullReferenceException előfordul. További információ: Kivételek kezelése.
A végrehajtási folyamat módosítása
Ha a hibakereső egy kódsornál szünetel, az egérrel fogja meg a bal oldali sárga nyilat. Vigye a sárga nyílmutatót a kódvégrehajtási útvonal egy másik pontjára. Ezután az F5 vagy egy lépés paranccsal folytathatja az alkalmazás futtatását.
A végrehajtási folyamat módosításával olyan műveleteket végezhet, mint a különböző kódvégrehajtási útvonalak tesztelése vagy a kód újrafuttatása a hibakereső újraindítása nélkül. További információ: A végrehajtási mutató áthelyezése.
Figyelmeztetés
Gyakran óvatosnak kell lennie ezzel a funkcióval, és figyelmeztetés jelenik meg az elemleírásban. Más figyelmeztetések is megjelenhetnek. Az egérmutató áthelyezése nem tudja visszaállítani az alkalmazást egy korábbi alkalmazásállapotba.
Holtpontok és versenyfeltételek hibakeresése
Ha hibakeresésre van szüksége a többszálas alkalmazásokban gyakran előforduló problémákban, gyakran segít a szálak helyének megtekintésében a hibakeresés során. Ezt egyszerűen megteheti a Szálak megjelenítése a Forrás gombra kattintva.
Szálak megjelenítése a forráskódban:
A hibakeresés során kattintson a Szálak megjelenítése a forrásban gombra a
Show Threads in SourceThreadMarkerDebug eszköztárban található részen.Nézd meg az ereszt az ablak bal oldalán. Ezen a vonalon megjelenik egy száljelölő ikon
, amely két szövetszálra hasonlít. A száljelölő azt jelzi, hogy egy szál le van állítva ezen a helyen.Vegye észre, hogy egy száljelölő részben el lehet rejtve egy töréspont által.
Vigye az egérmutatót a száljelölő fölé. Megjelenik egy adattip. Az adatleírás az egyes leállított szálak nevét és szálazonosítóját adja meg.
A szálak helyét a Párhuzamos verem ablakban is megtekintheti.
Ismerje meg jobban, hogyan csatlakozik a hibakereső az alkalmazásához (C#, C++, Visual Basic, F#)
A futó alkalmazáshoz való csatoláshoz a hibakereső betölti a hibakeresésre használt alkalmazás ugyanazon buildjéhez létrehozott szimbólumfájlokat (.pdb). Bizonyos esetekben a szimbólumfájlok ismerete hasznos lehet. A Modulok ablak segítségével megvizsgálhatja, hogyan tölti be a Visual Studio a szimbólumfájlokat.
A Windows-modulokhibakeresése >>lehetőség kiválasztásával nyissa meg a Modulok ablakot hibakeresés közben. A Modulok ablakból megtudhatja , hogy a hibakereső mely modulokat kezeli felhasználói kódként vagy Saját kódként, valamint a modul szimbólumbetöltési állapotát. A legtöbb esetben a hibakereső automatikusan megkeresi a felhasználói kód szimbólumfájljait, de ha a .NET-kódba, rendszerkódba vagy külső kódtárkódba szeretne lépni (vagy hibakeresést végezni), további lépésekre van szükség a megfelelő szimbólumfájlok beszerzéséhez.
A szimbólumadatok közvetlenül a Modulok ablakból tölthetők be, ha a jobb gombbal kattint, majd a Szimbólumok betöltése parancsot választja.
Előfordulhat, hogy az alkalmazásfejlesztők a megfelelő szimbólumfájlok nélkül küldik el az alkalmazásokat (a lábnyom csökkentése érdekében), de megtartják a build megfelelő szimbólumfájljainak másolatát, hogy később hibakeresést végezhetnek a kiadott verzióban.
Ha szeretné megtudni, hogy a hibakereső hogyan osztályozza a kódot felhasználói kódként, olvassa el a Just My Code (Saját kód) című témakört. A szimbólumfájlokról további információt a Szimbólum megadása (.pdb) és a forrásfájlok a Visual Studio hibakeresőjében talál.
Tudj meg többet
További tippekért és trükkökért és részletesebb információkért tekintse meg az alábbi blogbejegyzéseket:
- 7 kevésbé ismert hack a Visual Studióban végzett hibakereséshez
- 7 rejtett drágakő a Visual Studióban