Megosztás:


Dömpfájlok a Visual Studio hibakeresőjében

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.

Ha egy memóriaképfájlt egy halommal nyit meg a Visual Studióban, az olyan, mintha egy hibakeresési munkamenet töréspontjánál megállnál. Bár nem folytathatja a végrehajtás folytatását, megvizsgálhatja az alkalmazás veremeit, szálait és változóértékeit a memóriakép készítésekor.

A dumpokat leginkább olyan gépek hibaelhárítására használják, amelyekhez a fejlesztők nem férnek hozzá. Az ügyfél gépéről származó memóriaképfájlt akkor használhatja, ha nem tudja reprodukálni az összeomlást vagy a nem válaszoló programot a saját gépén. A tesztelők állományokat is létrehoznak az összeomlott vagy nem válaszoló programadatok mentéséhez a további teszteléshez.

A Visual Studio hibakeresője mentési fájlokat menthet felügyelt vagy natív kód esetében. Hibakeresést végezhet a Visual Studio vagy más olyan alkalmazások által létrehozott memóriaképfájlokban, amelyek minidump formátumban mentik a fájlokat.

Követelmények és korlátozások

  • A 64 bites gépekről származó memóriaképfájlok hibakereséséhez a Visual Studiónak egy 64 bites gépen kell futnia.
  • A Visual Studio képes a felügyelt alkalmazások memóriaképfájljainak hibakeresésére Linux operációs rendszerről.
  • A Visual Studio képes natív alkalmazások memóriaképfájljainak hibakeresésére ARM-eszközökről. Az ARM-eszközökről származó felügyelt alkalmazások memóriaképeit is képes hibakeresésre, de csak a natív hibakeresőben.
  • A kernel módú memóriaképfájlok hibakereséséhez vagy a SOS.dll hibakeresési bővítmény használatához töltse le a Windows hibakeresési eszközeit a Windows illesztőprogram-készletében (WDK).
  • A Visual Studio nem tudja a régebbi, teljes felhasználói módú memóriakép formátum szerint mentett fájlokat hibakeresésre használni. A teljes felhasználói módú memóriaállomány nem ugyanaz, mint egy heapet tartalmazó memóriaállomány.
  • Az optimalizált kód dömpfájlainak hibakeresése zavaró lehet. A függvények fordító általi beillesztése például váratlan hívásvermeket eredményezhet, és más optimalizálások megváltoztathatják a változók élettartamát.

Memóriadump fájlok halmokkal vagy anélkül

A memóriaképfájlok halominformációval rendelkezhetnek.

  • Memóriaképek halmokkal tartalmazzák az alkalmazás memóriájának pillanatképét, beleértve a változók értékeit is a kiírás idején. A Visual Studio a betöltött natív modulok bináris fájljait egy halomhoz kapcsolódó memóriaképfájlba menti, ami megkönnyíti a hibakeresést. A Visual Studio akkor is betölthet szimbólumokat egy heapspecifikáló dump fájlból, ha nem találja az alkalmazás bináris fájlját.

  • A halom nélküli lerakó fájlok kisebbek a halommal rendelkezőknél, de a hibakeresőnek be kell töltenie az alkalmazás bináris fájljait a szimbóluminformációk kereséséhez. A betöltött bináris fájloknak pontosan meg kell egyezniük a memóriakép létrehozásakor futó fájlokkal. A halom nélküli kiszedett fájlok csak a veremváltozók értékeit mentik.

Rendszermemória-dump fájl létrehozása

Amikor a Visual Studio-ban hibakeresést végez, menthet egy memóriaképfájlt, amikor a hibakereső megáll egy kivételnél vagy töréspontnál.

Ha a Just-In-Time hibakeresés engedélyezve van, csatolhatja a Visual Studio hibakeresőt egy összeomlott folyamathoz a Visual Studión kívül, majd elmenthet egy memóriaképfájlt a hibakeresőből. Lásd: Csatolás futó folyamatokhoz.

Memóriaképfájl mentése:

  1. Amikor hiba vagy töréspont miatt megáll a hibakeresés, válassza a Hibakeresés>Memóriaképet mentése másként lehetőséget.

  2. A Mentés másként párbeszédpanel Mentés típusában válassza a Minidump vagy a Minidump with Heap (alapértelmezett) lehetőséget.

  3. Tallózzon a kívánt útvonalra, adjon meg egy nevet a mentési fájlhoz, majd válassza a Mentés lehetőséget.

Megjegyzés:

Létrehozhat memóriaképfájlokat bármely olyan programmal, amely támogatja a Windows minidump formátumot. A Windows SysinternalsProcdump parancssori segédprogramja például eseményindítók vagy igény szerint hozhat létre folyamatösszeomlási memóriaképfájlokat. A memóriaképfájlok más eszközökkel történő létrehozására vonatkozó követelményeket és korlátozásokat a Követelmények és korlátozások részben található információk tartalmazzák.

Memóriaképfájl megnyitása

  1. A Visual Studióban válassza a Fájl>megnyitása>lehetőséget.

  2. A Fájl megnyitása párbeszédpanelen keresse meg és válassza ki a dump fájlt. Általában .dmp kiterjesztéssel rendelkezik. Kattintson az OK gombra.

    A Minidump Fájlösszefoglaló ablak a memóriaképfájl összegzését és moduladatait, valamint az elvégezhető műveleteket jeleníti meg.

    Képernyőkép a Minidump összefoglaló oldalról.

  3. A Műveletek csoportban:

    • A szimbólumbetöltési helyek beállításához válassza a Szimbólum elérési útjainak beállítása lehetőséget.
    • A hibakeresés megkezdéséhez válassza a Csak felügyelt hibakeresés, a Vegyes hibakeresés és a Csak natív hibakeresés lehetőséget.
    • A felügyelt memória elemzéséhez válassza a Felügyelt memória hibakeresése lehetőséget, és tekintse meg a felügyelt típusú jelentéseket.
    • Ha memóriaelemzőt szeretne futtatni a memóriaképen, válassza a Diagnosztikai elemzés futtatása lehetőséget, és tekintse meg a felügyelt memóriakép hibakeresését a .NET diagnosztikai elemzőkkel.

.exe, .pdb és forrásfájlok keresése

Ha teljes hibakeresési funkciókat szeretne használni egy memóriaképfájlban, a Visual Studiónak a következőre van szüksége:

  • A memóriakép.exe fájlt, valamint a memóriakép-feldolgozási folyamat által használt egyéb bináris fájlokat (például DLL-eket).
  • Szimbólumfájlok (.pdb) a .exe és más bináris fájlokhoz.
  • Azok a .exe és .pdb fájlok, amelyek pontosan megfelelnek a fájlok verziójának és buildjének a mentés készítésekor.
  • Forrásfájlok a megfelelő modulokhoz. A modulok szétszerelését akkor használhatja, ha nem találja a forrásfájlokat.

Ha a memóriakép halomadatokkal rendelkezik, a Visual Studio képes megbirkózni néhány modul hiányzó bináris fájljaival, de elegendő modulhoz kell bináris fájlokkal rendelkeznie ahhoz, hogy érvényes hívásveremeket hozzon létre.

Keresési útvonalak .exe fájlokhoz

A Visual Studio automatikusan a következő helyeken keres .exe fájlokat, amelyek nem szerepelnek a memóriaképfájlban:

  • A memóriadump fájlt tartalmazó mappa.

  • A memóriaképfájl által megadott modul elérési útja, amely a memóriaképet gyűjtő gépen található modul elérési útja.

  • A szimbólum elérési útjai az Eszközök (vagy Hibakeresés) >beállítások panelen, az Összes beállítás>hibakeresési>szimbólumok szakaszában vannak megadva. A Szimbólumok lapot a Fájlösszesítési ablak Műveletek paneljén is megnyithatja. Ezen a lapon további helyeket adhat hozzá a kereséshez.
  • A szimbólum elérési útjai az Eszközök (vagy Hibakeresés) >beállítások párbeszédpanelen, a Hibakeresési>szimbólumok szakaszban vannak megadva. A Szimbólumok lapot a Fájlösszesítési ablak Műveletek paneljén is megnyithatja. Ezen a lapon további helyeket adhat hozzá a kereséshez.

A Nincs bináris, a Nincs szimbólum vagy a Nem található forrás lap használata

Ha a Visual Studio nem találja azokat a fájlokat, amelyekre szüksége van egy modul hibakereséséhez a memóriaképben, megjelenik egy Nem található bináris, Nem található szimbólumok vagy Nincs forráskód lap. Ezek a lapok részletes információkat nyújtanak a probléma okáról, és olyan művelethivatkozásokat tartalmaznak, amelyek segítenek megtalálni a fájlokat. Lásd: Szimbólum megadása (.pdb) és forrásfájlok.