Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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:
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.
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.
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
A Visual Studióban válassza a Fájl>megnyitása>lehetőséget.
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.
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.