Felhasználói módú memóriaképfájlok

Ebben a cikkben áttekintheti a felhasználói módú memóriaképfájlokat, és megtudhatja, hogyan használhatja őket a hibák és összeomlások elhárításához.

A memóriaképfájl elemzésével kapcsolatos információkért lásd: Felhasználói módú memóriaképfájl elemzése.

Felhasználói módú memóriaképfájlok típusai

Többféle felhasználói módú összeomlási adatfájl érhető el. A különböző típusú memóriaképfájlok két kategóriába vannak osztva:

A memóriaképfájl elemzésével jelentős mennyiségű információt kaphat. Egyetlen memóriaképfájl sem képes olyan mennyiségű információt adni, mint a hibakereső használatával végzett összeomlás hibakeresése.

Teljes felhasználói módú memóriaképek

A teljes felhasználói módú memóriakép az alapszintű felhasználói módú memóriaképfájl alapértelmezett típusa. A teljes felhasználói módú memóriaképfájl a következőket tartalmazza:

  • A folyamat teljes memóriaterülete.
  • A program végrehajtható képe.
  • A fogótábla.
  • Egyéb információk, amelyek segítenek a hibakeresőnek rekonstruálni azt a memóriát, amely használatban volt a dump bekövetkezésekor.

A teljes felhasználói módú memóriaképfájlt minidumpra zsugoríthatja . A teljes felhasználói módú memóriaképfájl zsugorításához először a hibakeresőbe kell betölteni a memóriaképfájlt. Ezután a .dump (Create Dump File) paranccsal mentsen egy új memóriaképfájlt minidump formátumban.

A nevük ellenére a legnagyobb minidump fájlverzió több információt tartalmaz, mint a teljes felhasználói módú dump fájl. A parancsok például .dump /mf.dump /ma nagyobb és teljesebb fájlokat hoznak létre, mint a .dump /f parancs.

Felhasználói módban .dump /ma [MiniOptions] gyakran a legjobb választás. A memóriaképfájlok, amelyeket ezzel a kapcsolóval hozol létre, méretükben nagyon kicsiktől nagyon nagyokig terjedhetnek. A megfelelő MiniOptions kapcsoló megadásával pontosan szabályozhatja, hogy milyen információk szerepelnek benne.

Minidumps

A minidump fájl mérete és tartalma a programtól, amelyről a minidumpot készítik, a minidumpt készítő alkalmazástól, és a kiválasztott lehetőségektől függően változik. Néha egy minidump fájl közepesen nagy, és tartalmazza a teljes memóriát és a kezelőtáblát. Máskor a minidump fájl sokkal kisebb. Előfordulhat például, hogy egy minidump fájl csak egyetlen szálra vonatkozó információt tartalmaz, vagy csak a veremben hivatkozott modulokra vonatkozó információkat tartalmaz.

A minidump kifejezés félrevezető, mert a legnagyobb minidump fájlok több információt tartalmaznak, mint egy teljes felhasználói módú memóriaképfájl. Például a .dump /mf és .dump /ma egy nagyobb és teljesebb fájlt hoz létre, mint a .dump /f. Ezért azt javasoljuk, hogy az összes felhasználói módú memóriaképfájl létrehozásához a .dump /f helyett a [MiniOptions] parancsot használja.dump /m.

Ha minidump fájlt hoz létre a hibakereső használatával, kiválaszthatja, hogy milyen információkat tartalmazzon. A .dump /m parancs alapvető információkat tartalmaz a célfolyamatot alkotó betöltött modulokról, a szálinformációkról és a veremadatokról. Az alapszintű parancsot az alábbi kapcsolóbeállítások bármelyikével módosíthatja:

.dump lehetőség Hatás a kiöntési fájlra
/ma Létrehoz egy minidumpot az összes választható kiegészítéssel. A /ma beállítás egyenértékű a következő beállítással /mfFhut: . Teljes memóriaadatokat, kezelési adatokat, betöltetlen moduladatokat, alapvető memóriainformációkat és szálidőadatokat ad hozzá a minidumphoz.
/mf Teljes memóriaadatokat ad hozzá a minidumphoz. A célalkalmazás tulajdonában lévő összes hozzáférhető lefoglalt oldal szerepel benne.
/mF Az összes alapvető memóriainformációt hozzáadja a minidumphoz. Ez a kapcsoló hozzáad egy streamet a minidumphoz, amely az összes alapvető memóriainformációt tartalmazza, nem csak az érvényes memóriával kapcsolatos információkat. A hibakereső az információkat arra használja, hogy rekonstruálja a folyamat teljes virtuális memóriaelrendezését, amikor a minidumpot hibakeresés alatt áll.
/mh Adatokat ad a célalkalmazáshoz társított leírókról a minidumphoz.
/mu Hozzáadja a kiürített modul adatait a minidumphoz. Ez a beállítás csak a Windows Server 2003 és újabb verzióiban érhető el.
/mt További szálinformációkat ad hozzá a minidumphoz. A szálinformációk a szálidőkre is kiterjednek, amelyeket a minidump hibakeresésekor a .ttime (Menetidők megjelenítése) használatával jeleníthet meg.
/mi Másodlagos memóriát ad hozzá a minidumphoz. Másodlagos memória minden olyan memória, amelyet a veremben vagy a háttértárban lévő mutató hivatkozik, valamint az adott cím körüli kis régiót is magában foglalja.
/mp A folyamatkörnyezet blokk- és szálkörnyezeti blokkadatait adja hozzá a minidumphoz. Ez az információ akkor lehet hasznos, ha hozzá kell férnie a Windows rendszerinformációihoz az alkalmazás folyamataival és szálaival kapcsolatban.
/mw Az összes véglegesített írásvédett magánoldalt hozzáadja a minidumphoz.
/md Hozzáadja a végrehajtható kép összes írási-olvasási adatszegmensét a minidumphoz.
/mc Kódszakaszokat ad hozzá a képeken belül.
/mr Törli a verem minidump részeit, és tárolja a memóriát, amelyek nem használhatók a verem nyomkövetésének újbóli létrehozásához. A helyi változók és az egyéb adattípus-értékek is törlődnek. Ez a beállítás nem teszi kisebbé a minidumpot (a fel nem használt memóriaszakaszok nullázva vannak), de akkor hasznos, ha más alkalmazások adatvédettségi adatait szeretné védeni.
/mR Törli a teljes modul elérési útját a minidumpból. Csak a modulnevek szerepelnek benne. Ez a beállítás akkor hasznos, ha meg szeretné védeni a felhasználó címtárstruktúrájának adatvédelmet.

Ezeket a kapcsolóbeállításokat kombinálhatja. A parancs .dump /mfiu használatával például létrehozhat egy közepesen nagy méretű minidumpot, amely kiürített és másodlagos memóriát tartalmaz. A parancs használatával .dump /mrR hozzon létre egy minidumpot, amely eltávolítja a felhasználó egyes adatait. A szintaxis részletes leírását a .dump (Dump File létrehozása) című témakörben találja.

Kibocsátási fájl létrehozásához használható eszközök

Több különböző eszközzel is létrehozhat felhasználói módú memóriaképfájlt:

ProcDump

A ProcDump egy parancssori segédprogram, amellyel monitorozhat egy alkalmazást a CPU-csúcsokhoz, és összeomlási memóriaképeket hozhat létre a csúcs során. A rendszergazda vagy a fejlesztő az összeomlási memóriaképfájlokat felhasználva meghatározhatja a kiugró érték okát. A ProcDump a lefagyott ablakok monitorozását is magában foglalja (a Windows és a Task Manager által használt ablaklefagyás definícióját használva) és a kezeletlen kivételeket is. A ProcDump használatával memóriaképeket hozhat létre a rendszerteljesítmény-számlálók értékei alapján. A ProcDump általános folyamatkép-segédprogramként is szolgálhat, amelyet más szkriptekbe is beágyazhat.

A felhasználói módú memóriaképfájl Sysinternals ProcDump segédprogrammal történő létrehozásáról a ProcDump című témakörben olvashat bővebben.

WinDbg és CDB

A konzol hibakeresője (CDB) és a Windows Debugger (WinDbg) a Windows Software Development Kit és a Windows Driver Kit részét képező hibakeresési eszközök. A telepítési lehetőségekről további információt a WinDbg Windows hibakeresőjének letöltése és telepítése című témakörben talál.

A CDB vagy a WinDbg használatával több módon is létrehozhat felhasználói módú memóriaképfájlokat:

  • Hozzon létre egy kivonat fájlt automatikusan.
  • Hibakereséskor hozzon létre memóriaképfájlokat.
  • Meglévő dömpfájl zsugorítása.

Az eszközökkel kapcsolatos további információkért tekintse meg a Windows hibakeresésének és hibakeresésének első lépéseit a CDB használatával.

Memóriaképfájl automatikus létrehozása

Alkalmazáshiba esetén a Windows többféle módon válaszolhat, az utólagos hibakeresési beállításoktól függően. Ha ezek a beállítások egy hibakereső eszközt utasítanak egy memóriaképfájl létrehozására, a rendszer létrehoz egy felhasználói módú memóriaképfájlt. További információért lásd: Engedélyezze a postmortem hibakeresést.

Dömpfájlok létrehozása hibakereséskor

Ha a CDB vagy a WinDbg felhasználómódú alkalmazás hibakeresését használja, a .dump (Create Dump File) paranccsal is létrehozhat egy memóriaképfájlt.

Ez a parancs nem okozza a célalkalmazás leállítását. Adott parancsbeállítások kiválasztásával létrehozhat egy minidump fájlt, amely pontosan a kívánt mennyiségű információt tartalmazza.

Meglévő dömp fájl csökkentése

A CDB vagy a WinDbg használatával zsugorítheti a memóriaképfájlokat. A dömp fájl méretének csökkentéséhez kezdje el egy meglévő dömp fájl hibakeresését. Ezután a .dump paranccsal hozzon létre egy kisebb méretű dömpfájlt.

Időutazás hibakeresése

A felhasználói üzemmódú alkalmazások hibakeresésének másik lehetősége a Time Travel Hibakeresés (TTD). A TTD egy eszköz, a folyamat futás közbeni rögzítésére használható. A hiba megkereséséhez visszajátszhatja a hibakereső munkamenet felvételét. A felvétel különböző részeire könnyen átmehet, hogy megismerje a hibához vezető feltételeket és a probléma megoldásának módját.

A TTD jelentős előnyöket kínál az összeomlási fájlokkal szemben, amelyek gyakran nem tartalmazzák a hibához vezető kódvégrehajtást. A kódvégrehajtás visszafelé történő utazásának képessége hasznos lehet a kiváltó ok meghatározásában.

További információt a Time Travel hibakeresési áttekintésében talál.

Lásd még