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.
Ez a szakasz a gyakori kernel élő memóriafő kódok leírását tartalmazza, amelyek előfordulhatnak. Az élő memóriadumpok nem állítják alaphelyzetbe az operációs rendszert, hanem lehetővé teszik a memóriaadatok rögzítését olyan rendellenes helyzetekben, amikor az operációs rendszer tovább működjön.
Megjegyzés:
Ez a témakör programozóknak szól. Ha Ön olyan ügyfél, akinek a rendszere kék képernyőt jelenít meg hibaellenőrzési kóddal, tekintse meg a kék képernyő hibáinak elhárítása című témakört.
Kernel élő memóriaképe a hibaellenőrzéshez képest
A hagyományos hibaellenőrzéssel a számítógép alaphelyzetbe áll, és a felhasználó munkája megszakad. A kernel élő mentés célja, hogy adatokat gyűjtsön össze egy rendellenes helyzet elhárítása érdekében, de lehetővé tegye az operációs rendszer számára a működés folytatását. Ez csökkenti az állásidőt a "nem végzetes", de magas kihatású hibák és lefagyások hibajavításához képest. A rendszermag élő memóriaképeit akkor használja a rendszer, ha az operációs rendszer helyreállítható egy ismert jó állapotban. Például egy alrendszer hardveres alaphelyzetbe állítása( például videó/kijelző, USB3 vagy Wi-Fi) lehetővé teszi, hogy ezek a rendszerek minimális felhasználói hatással térjenek vissza egy ismert jó állapotba.
A kernel élő memóriakiírat konzisztens pillanatképet hoz létre a kernelmemóriáról, és egy kiírási fájlba menti jövőbeli elemzésekhez. Az előadásra gyakorolt hatás minimalizálása érdekében memóriamásolási technikákat alkalmaznak, hogy rövid idő alatt létrehozzák a memóriaképfájlt. Emellett az élő memóriaképek gyűjteménye szabályozva van, így a felhasználói hatás minimálisra csökken.
A kernel élő dump hatékony olyan problémák esetén, ahol valami hosszú ideig tart, és technikailag semmi sem romlott el. A watchdog időzítő inicializálható egy művelet indításakor. Ha a figyelő lejár, mielőtt a művelet a vártnál korábban befejeződik, a rendszermag memóriaállapotának mentése végrehajtható. Ezután a memóriakép elemezhető a hívásverem és a kapcsolódó várakozási lánc bejárásával annak vizsgálatához, hogy miért nem fejezhető be a várt időkerettel.
A rendszernaplók jól működnek, ha valami meghibásodik, és a kód tulajdonosa rögzítette a hiba okát, és képes azonosítani az okot. A watchdog időzítőket használó élő memóriaképek megpróbálják érzékelni az előre nem látott és ezért nem naplózott hibaelérési útvonalakat. De mint minden hiba esetén, a rendszernaplók is azonosíthatnak más problémákat, amelyek nyomokat adhatnak a hiba konkrét kiváltó okához.
Kernel élő dump fájl tartalma
A normál memóriaképfájlokhoz hasonlóan az élő memóriaképek minidumpokat (másodlagos adatokkal) és teljes kernelképeket is tartalmazhatnak, amelyek felhasználói módú memóriát is tartalmazhatnak, hasonlóan az aktív memóriaképekhez. A memóriaképfájl tartalmával kapcsolatos általános információkért lásd a Kernel-Mode memóriaképfájlok fajtái című témakört. Egyes élő memóriaképek csak minidumpokat próbálnak rögzíteni, mivel bizonyos hardveres adatok rögzítésére lettek tervezve, míg mások nagyobb kernel-élő memóriaképet próbálnak rögzíteni.
A teljesítmény, a fájlméret és a memóriakép-rögzítések megbízhatósága érdekében bizonyos információk nem szerepelnek ilyen esetekben, mint például a készenléti lista lapjai és a fájlgyorsítótárak.
Az élő memória dump fájlok általában olyan memórialapokat tartalmaznak, mint:
- KdDebuggerBlock
- Betöltött modullista
Minden processzor esetében a rendszer a következő adatokat rögzíti a kernelképekben:
- KiProcessorBlock
- PRCB-k
- Aktuális verem
- Aktuális lapkönyvtár tábla
- KI_USER_SHARED_DATA
- NTOS kernelkép
- HAL kép
A kernel dumpok további információi a következők lehetnek:
- Szál/ memória állapota
- Memóriabeli naplózás
Egyes élő memóriaképek felhasználói módú folyamatok oldalait tartalmazhatják.
Egyes élő memóriaképekhez további tartományspecifikus adatok is tartozhatnak, például usb-specifikus adatok az USB-hibákhoz.
Részleges kernel élő lerakódási fájl
Előfordulhat, hogy részleges kernel élő dumpfájl jön létre olyan helyzetekben, amikor az élő memóriakép nem képes megbízhatóan rögzíteni az összes tervezett memóriaoldalt. A részleges memóriaképben rögzített információk szűrése és rangsorolása úgy történik, hogy olyan oldalakat rögzít, amelyek fontos adatokat tartalmaznak ahhoz, hogy érvényes memóriaképet hozhassanak létre más lapok előtt. A kernel lapok például prioritást élveznek a felhasználói lapokkal szemben, amikor az élő dömp felhasználói lapokat is tartalmaz. Bizonyos helyzetekben nem áll rendelkezésre elegendő erőforrás az összes tervezett opcionális memórialap rögzítéséhez, ezért előfordulhat, hogy a memória hiányzik a memóriaképfájlból. A hibatározófájlt továbbra is fel kell ismernie a WinDbg hibakereső programjának, de előfordulhatnak hibák, amikor memóriadumpot próbál készíteni. Ha a hibakereső hibát jelez, amikor memóriát próbál kiírni egy címnél, a !pte kiterjesztést használhatja annak ellenőrzésére, hogy a cím PTE-je érvényes-e vagy sem. Ez segíthet annak megállapításában, hogy a memóriacím valóban érvénytelen-e, vagy a lap érvényes, de egyszerűen nem érhető el a dömp fájlban.
Élő memóriaképfájlok elemzése
Ha élő memória-kép készül, a memória dump fájl ugyanazokkal a technikákkal elemezhető, mint a többi memória dump fájl esetében. A memória tartalmának hiba esetén történő megértéséhez ismerni kell a processzor memóriaregisztrálását és a szerelvény programozását.
További információkért lásd:
A WinDbg segítségével az élő memória dömp stopkód információk megjelenítése
Ha egy adott élő memória dump kód nem jelenik meg ebben a témakörben, használja a !analyze bővítményt a Windows Hibakeresőben (WinDbg) a következő szintaxissal (kernel módban), és cserélje le <code> egy élő memória dump kóddal.
!analyze -show <code>
A parancs beírásával a WinDbg megjeleníti a megadott élő memória-hibaállapot adatait. Ha az alapértelmezett számbázis (radix) nem 16, akkor adjon hozzá az <code> előtaghoz 0x.
Adja meg az élő dump kódparamétereit a !analyze parancsnak, hogy megjelenítse az elérhető paraméterinformációkat. Ha például a hibaellenőrzési 0x144 BUGCODE_USB3_DRIVER adatait szeretné megjeleníteni, az 1. paraméter értéke 0x3003, használja !analyze -show 0x144 0x3003 az itt látható módon.
0: kd> !analyze -show 0x144 0x3003
BUGCODE_USB3_DRIVER (144)
This bugcheck usually happens when the USB3 core stack detects an invalid
operation being performed by a USB client. This bugcheck may also occur
due to hardware failure on a USB Boot Device.
Arguments:
Arg1: 0000000000003003, USB3_WER_BUGCODE_USBHUB3_DEVICE_ENUMERATION_FAILURE
A USB device failed enumeration.
Arg2: 0000000000000000, USBHUB3_LIVEDUMP_CONTEXT
Arg3: 0000000000000000, 0
Arg4: 0000000000000000, 0
A WinDbg letöltéséhez lásd a Windows hibakeresési eszközeit. A WinDbg fejlesztői eszközeivel kapcsolatos további információkért tekintse meg a Windows hibakeresés első lépéseit.
Élő hibakiíró fájl helyei
Az élő dumpok alapértelmezés szerint a "C:\WINDOWS\LiveKernelReports" könyvtárban vannak tárolva.
Teljes memória-dumpok: %systemroot%\LiveKernelReports\*.dmp
Minidumps: %systemroot%\LiveKernelReports\<ComponentName>\*.dmp
A címtárstruktúra különböző összetevők élő memóriaképeinek tárolására szolgál.
NDIS
PDCRevocation
PoW32kWatchdog
USBHUB3
WATCHDOG
Élő dump rendszerleíró kulcsok
A rendszer által létrehozott élő kerneljelentések konfigurációs beállításairól további információt a WER beállításai című témakörben talál.
Élő dump manuális kezdeményezése PowerShell használatával
Nyisson meg egy rendszergazdai PowerShell parancssort.
Szerezze meg a StorageSubsystem barátságos nevét a Get-StorageSubSystem PowerShell paranccsal.
C:\> Get-StorageSubSystem
FriendlyName HealthStatus OperationalStatus
------------ ------------ -----------------
Windows Storage on 10-2411-PC Healthy OK
- A Get-StorageDiagnosticInfo használatával készítsen élő memóriaképet a fenti alrendszerhez (más diagnosztikai naplókkal együtt). További információ: Get-StorageDiagnosticInfo.
C:\> Get-StorageDiagnosticInfo -StorageSubSystemFriendlyName "Windows Storage on 10-2411-PC" -IncludeLiveDump -DestinationPath C:\destinationfolder
- A kimenet azt jelzi, hogy a kért információ létre lett hozva.
Gathering storage subsystem diagnostic information
Running
[oooooooooooo ]
- A kivonat a
[DestinationPath]\localhostbelsejében lesz.
C:\> dir C:\destinationfolder\localhost\*.dmp
Directory: C:\destinationfolder\localhost
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/5/2016 1:08 PM 867135488 LiveDump.dmp
- Ha a hibakeresővel futtatja a !analyze parancsot a memóriaképfájlon, az azt jelzi, hogy ez egy LIVE_SYSTEM_DUMP (161) élő memóriaképkód.
Kernel élő memória dump kódjai
Az alábbi táblázat a kernel élő memóriaképkódjaira mutató hivatkozásokat tartalmaz.
Ezek a leállítási kódok használhatók élő hibaüzenetekhez vagy az eszköz hibakereséséhez.
| Kód | Név |
|---|---|
| 0x00000124 | WHEA_UNCORRECTABLE_ERROR |
| 0x00000144 | BUGCODE_USB3_DRIVER |
| 0x00000164 | WIN32K_CRITICAL_FAILURE |
Lásd még
Hibaellenőrzési kódok referenciája