Výpis zlyhania pamäte systému Windows. Čo je to výpis pamäte? Program na výpis pamäte RAM

V kapitole definovaný výpis z havárie nasledujúce parametre:

REG_DWORD- parameter autoreboot so zmyslom 0x1(možnosť Vykonajte automatický reštart pomocné okenné okno Vlastnosti systému);

REG_DWORD- parameter CrashDumpEnabled so zmyslom 0x0 ak sa nevygeneruje výpis pamäte; 0x1Úplný výpis pamäte; 0x2Výpis pamäte jadra; 0x3Malý výpis pamäte (64 kB);

REG_EXPAND_SZ- parameter DumpFile so zmyslom %SystemRoot%\MEMORY.DMP(kde je uložený súbor výpisu);

REG_DWORD- parameter protokolovať udalosť so zmyslom 0x1(možnosť Zapíšte udalosť do denníka okno);

REG_EXPAND_SZ- parameter MinidumpDir so zmyslom %SystemRoot%\Minidump(možnosť);

REG_DWORD- parameter Prepísať so zmyslom 0x1(možnosť Nahradiť existujúci súbor okno);

REG_DWORD- parameter Odoslať upozornenie so zmyslom 0x1(možnosť Odoslať administratívne oznámenie okno).

Ako systém vytvára súbor pamäte pri zlyhaní

Počas zavádzania operačný systém kontroluje nastavenia núdzového vytvorenia v kľúči databázy Registry . Ak je zadaný aspoň jeden parameter, systém vygeneruje mapu diskových blokov obsadených zavádzacím zväzkom a uloží ju do pamäte. Systém tiež určí, ktoré diskové zariadenie riadi bootovací zväzok, vypočíta kontrolné súčty pre obraz v pamäti a pre dátové štruktúry, ktoré musia byť celé čísla, aby mohli vykonávať I/O operácie.

Po zlyhaní skontroluje jadro systému integritu mapy súboru stránky, súboru disku a riadiacich štruktúr disku.. Ak sa neporuší integrita týchto štruktúr, jadro systému zavolá špeciálne diskové I/O funkcie. , určený na uloženie obrazu pamäte po havárii. Tieto I/O funkcie sú sebestačné a nespoliehajú sa na služby jadra systému, pretože programy zodpovedné za písanie výpisu zrútenia nemôžu robiť žiadne predpoklady o tom, ktoré časti jadra systému alebo zariadenia zlyhali. Systémové jadro zapisuje údaje z pamäte pomocou mapy sektorov stránkovacieho súboru (nemusí používaťsystém súborov).

Po prvé, jadro systému skontroluje stav každého komponentu zapojeného do procesu ukladania výpisu. Deje sa tak preto, aby pri priamom zápise do sektorov disku nedošlo k poškodeniu údajov mimo súboru. Veľkosť súboru musí byť 1 MB nad veľkosťou fyzická pamäť, pretože pri zápise informácií sa vytvorí hlavička, ktorá obsahuje podpis núdzového stavu a hodnoty niekoľkých dôležitých premenných jadra systému. Titul je menší ako 1 MB, ale operačný systém môže zväčšiť (alebo zmenšiť) veľkosť stránkovacieho súboru aspoň o 1 MB.

Po spustení systému manažér relácie (Správca relácií Windows NT; adresa disku - \WINDOWS\system32\smss.exe) inicializuje systémové súbory pomocou vlastnej funkcie na vytvorenie každého súboru NtCreatePagingFile. NtCreatePagingFile určuje, či inicializovaný súbor existuje, a ak áno, či má hlavičku . Ak je tam hlavička, tak NtCreatePagingFile posiela do manažér reláciešpeciálny kód. Potom manažér relácie spustí proces Winlogon (Prihlasovací program Windows NT; adresa disku - \WINDOWS\system32\winlogon.exe), ktorá je upozornená na existenciu mimoriadnej udalosti . Winlogon spustí program SaveDump (Kopírovať šetrič Pamäť systému Windows NT; adresa disku - \WINDOWS\system32\savedump.exe), ktorý analyzuje hlavičku a určí ďalší postup v prípade núdze.

Ak názov naznačuje existenciu , potom SaveDump skopíruje údaje zo súboru do núdzového súboru, ktorého názov je uvedený REG_EXPAND_SZ- parameter DumpFile oddiele . Zbohom SaveDump prepíše súbor , operačný systém nepoužíva časť stránkovacieho súboru, ktorá obsahuje núdzový stav . V tomto čase sa veľkosť virtuálnej pamäte dostupnej pre systém a aplikácie zníži o veľkosť (V tomto prípade sa na obrazovke môžu objaviť hlásenia indikujúce nedostatok virtuálnej pamäte). Potom SaveDump informuje správcu pamäte, že ukladanie je dokončené a túto časť uvoľní súbor, ktorý ukladá , na všeobecné použitie.

Ukladá sa súbor , program SaveDump zaznamenáva vznik mimoriadnej udalosti v denníku udalostí , napríklad: "Počítač bol reštartovaný po kritickej chybe: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 0xc84d90a6). Uložená kópia pamäte: C:\WINDOWS\Minidump\Mini060309-01.dmp" .

Úplný výpis pamäte zapíše celý obsah pamäte, keď dôjde k závažnej chybe. Pre túto možnosť musíte mať na zavádzacom zväzku odkladací súbor, ktorého veľkosť sa rovná objemu celého fyzického Náhodný vstup do pamäťe plus 1 MB. Predvolene plná pamäť sa zapíše do súboru %SystemRoot%\Memory.dmp. Keď sa vyskytne nová chyba a vytvorí sa nový úplný súbor pamäť (resp pamäť jadra) predchádzajúci súbor je nahradený (prepísaný). Parameter Úplný výpis pamäte nedostupné na , ktoré majú 32-bitový operačný systém a nainštalované 2 alebo viac pamäte RAM.

Keď sa vyskytne nová chyba a vytvorí sa nový úplný súbor pamäte, predchádzajúci súbor sa nahradí.

Výpis pamäte jadra zapisuje iba pamäť jadra, vďaka čomu je proces zapisovania údajov do protokolu pri náhlom vypnutí systému rýchlejší. V závislosti od množstva fyzickej pamätev tomto prípade výmenný súbor potrebuje 50 až 800 MB alebo jednu tretinu fyzickej pamäte na zavádzacom zväzku. pamäť jadra sa zapíše do súboru %SystemRoot%\Memory.dmp.

Toto nezahŕňa nepridelenú pamäť alebo pamäť pridelenú programom v režime. Zahŕňa iba pamäť pridelenú jadru a hardvérovo špecifickej vrstve ( HAL) v Windows 2000 a novších verziách systému, ako aj pamäť alokovanú pre režim jadra a iné programy v režime jadra. Vo väčšine prípadov napr je preferovanou možnosťou. Zaberá oveľa menej miesta ako plný pamäť, pričom sa vylúčia len tie sektory pamäte, ktoré s najväčšou pravdepodobnosťou nie sú spojené s chybou.

Keď sa vyskytne nová chyba a vytvorí sa nový súbor pamäte jadra predchádzajúci súbor sa nahradí.

Malý výpis pamäte zapíše najmenší objem užitočná informácia potrebné na určenie príčiny problému. Na vytvorenie malého pamäte, veľkosť stránkovacieho súboru by mala byť aspoň 2 MB na zavádzacom zväzku.

Malé súbory pamäť obsahuje nasledujúce informácie:

– fatálne chybové hlásenie, jeho parametre a ďalšie údaje;

– zoznam stiahnutých ;

- kontext ( PRCB) na ktorom došlo k poruche;

EPROCESS) pre proces, ktorý spôsobil chybu;

– informácie o procese a kontext jadra ( ETHREAD) pre vlákno, ktoré spôsobilo chybu;

– zásobník volaní režimu jadra pre vlákno, ktoré spôsobilo chybu.

Súbor malý pamäť sa používa, keď je miesto na pevnom disku obmedzené. Z dôvodu obmedzených informácií, ktoré obsahuje, však analýza tohto súboru nemusí vždy odhaliť chyby, ktoré neboli priamo spôsobené vláknom, ktoré bolo spustené v čase, keď sa chyba vyskytla.

Keď sa vyskytne nasledujúca chyba a vytvorí sa druhý malý súbor pamäte, predchádzajúci súbor sa uloží. Každému dodatočný súbor dostal jedinečný názov. Dátum je zakódovaný v názve súboru. Napríklad, Mini051509-01.dmp je prvý súbor pamäť vytvorená 15. mája 2009 Zoznam všetkých malých súborov pamäť je uložená v priečinku %SystemRoot%\Minidump.

Operačný systém , je nepochybne oveľa spoľahlivejšia ako predchádzajúce verzie – vďaka úsiliu oboch vývojárov Microsoft a vývojári hardvéru a vývojári aplikačného softvéru . Avšak núdzové situácie- všetky druhy porúch a pádov systému sú nevyhnutné, a na tom, čiznalosti a zručnosti pri ich odstraňovaní závisia od toho, či bude musieť stráviť niekoľko minút riešením problémov (napríklad aktualizáciou / ladením alebo preinštalovaním aplikačný program spôsobiť zlyhanie) – alebo niekoľko hodín na preinštalovanie/konfiguráciu operačný systém a aplikovaný softvér (čo nezaručuje absenciu porúch a pádov v budúcnosti!).

Mnoho správcov zanedbáva analýzu výpisov z pádov Windows veriť, že je príliš ťažké s nimi pracovať. Ťažké, ale možné: aj keď napríklad analýza jedného z desiatich budú úspešné – úsilie vynaložené na zvládnutie najjednoduchších metód analýzy nehôd , nebude to márne! ..

Všetky systémy Windows po objavení fatálna chyba urobte núdzový výpis (snímku) obsahu pamäte RAM a uložte ho na pevný disk. Existujú tri typy výpisov pamäte:

Úplný výpis pamäte - uloží celý obsah pamäte RAM. Veľkosť snímky sa rovná veľkosti pamäte RAM + 1 MB (hlavička). Používa sa veľmi zriedka, pretože na systémoch s veľkým množstvom pamäte bude veľkosť výpisu príliš veľká.

Výpis pamäte jadra - ukladá informácie o pamäti RAM týkajúce sa iba režimu jadra. Informácie o používateľskom režime sa neuložia, pretože nenesú informácie o príčine zlyhania systému. Veľkosť súboru výpisu závisí od veľkosti pamäte RAM a pohybuje sa od 50 MB (pre systémy so 128 MB RAM) do 800 MB (pre systémy s 8 GB RAM).

Malý výpis pamäte (mini výpis) - obsahuje pomerne malé množstvo informácií: kód chyby s parametrami, zoznam ovládačov načítaných do pamäte RAM v čase zlyhania systému atď., Ale tieto informácie sú dostatočné na identifikáciu neúspešného ovládača. . Ďalšou výhodou tohto typu výpisu je malá veľkosť súboru.

Nastavenie systému

Na identifikáciu ovládača, ktorý to spôsobil, nám bude stačiť malý výpis pamäte. Aby systém počas zlyhania uložil mini výpis, musíte vykonať nasledujúce kroky:

Pre Windows XP Pre Windows 7
  1. Môj počítač Vlastnosti
  2. Prejdite na kartu Okrem toho;
  3. Možnosti;
  4. V teréne Zápis informácií o ladení vyberte si Malý výpis pamäte (64 KB).
  1. Kliknite pravým tlačidlom myši na ikonu Počítač od obsahové menu vyberte Vlastnosti(alebo kombinácia kláves Win+Pause);
  2. V ľavom menu kliknite na položku Ďalšie systémové nastavenia;
  3. Prejdite na kartu Okrem toho;
  4. V poli Stiahnuť a obnoviť kliknite na tlačidlo Možnosti;
  5. V teréne Zápis informácií o ladení vyberte si Malý výpis pamäte (128 KB).

Po vykonaní všetkých manipulácií sa po každom BSoD uloží súbor s príponou .dmp do priečinka C:\WINDOWS\Minidump. Odporúčam vám prečítať si materiál „“. Môžete tiež zaškrtnúť políčko " Nahradiť existujúci súbor výpisu". V tomto prípade každý nový výpis z havárie prepíše starý. Neodporúčam povoliť túto možnosť.

Analýza zlyhaní výpisov pomocou BlueScreenView

Takže po vystúpení modrá obrazovka smrť, systém uložil nový výpis z havárie. Na analýzu skládky odporúčam použiť program BlueScreenView. Dá sa stiahnuť zadarmo. Program je celkom pohodlný a má intuitívne rozhranie. Po jeho nainštalovaní je prvou vecou, ​​ktorú musíte urobiť, určiť miesto na ukladanie výpisov pamäte v systéme. Ak to chcete urobiť, prejdite na položku ponuky „ možnosti“ a zvoľte „ Pokročilémožnosti". Vyberte prepínač naložiťodanasledujúceMini Skládkapriečinok“ a zadajte priečinok, kde sú uložené výpisy. Ak sú súbory uložené v priečinku C:\WINDOWS\Minidump, môžete kliknúť na „ Predvolené". Kliknite na tlačidlo OK a vstúpte do rozhrania programu.

Program pozostáva z troch hlavných blokov:

  1. Blok hlavného menu a ovládací panel;
  2. Blok zoznamu výpisov zrútenia;
  3. V závislosti od zvolených parametrov môže obsahovať:
  • zoznam všetkých ovládačov v pamäti RAM pred zobrazením modrej obrazovky (predvolené);
  • zoznam ovládačov umiestnených v zásobníku RAM;
  • snímka obrazovky BSoD;
  • a ďalšie hodnoty, ktoré nebudeme používať.

V bloku zoznamu výpisov pamäte (na obrázku označený číslom 2) vyberte výpis, ktorý nás zaujíma, a pozrite sa na zoznam ovládačov, ktoré boli načítané do pamäte RAM (na obrázku označené číslom 3). Ovládače, ktoré boli v zásobníku pamäte, sú zafarbené na ružovo. Sú príčinou BSoD. Ďalej prejdite do hlavnej ponuky ovládača a určite, ku ktorému zariadeniu alebo programu patria. V prvom rade venujte pozornosť systémové súbory, pretože systémové súbory sa aj tak načítajú do RAM. Je ľahké vidieť, že myfault.sys je chybný ovládač v obraze. Poviem, že tento program bol špeciálne spustený, aby spôsobil chybu Stop. Po identifikácii chybného ovládača ho musíte aktualizovať alebo odstrániť zo systému.

Aby program zobrazil zoznam ovládačov, ktoré sú v pamäťovom zásobníku počas výskytu BSoD, musíte prejsť na položku ponuky „ možnosti"klikni na menu" NižšiaPanelrežim“ a zvoľte „ IbaVodičiNájdenéInStoh“ (alebo stlačte kláves F7) a ak chcete zobraziť snímku obrazovky s chybou, vyberte možnosť „ ModráObrazovkavXPštýl“ (F8). Ak sa chcete vrátiť do zoznamu všetkých ovládačov, musíte vybrať položku „ VšetkyVodiči“ (F6).

Všetky systémy Windows, keď sa zistí závažná chyba, urobia núdzový výpis (snímku) obsahu pamäte RAM a uložia ju na pevný disk. Existujú tri typy výpisov pamäte:

Úplný výpis pamäte - uloží celý obsah pamäte RAM. Veľkosť snímky sa rovná veľkosti pamäte RAM + 1 MB (hlavička). Používa sa veľmi zriedka, pretože na systémoch s veľkým množstvom pamäte bude veľkosť výpisu príliš veľká.

Výpis pamäte jadra - ukladá informácie o pamäti RAM týkajúce sa iba režimu jadra. Informácie o používateľskom režime sa neuložia, pretože nenesú informácie o príčine zlyhania systému. Veľkosť súboru výpisu závisí od veľkosti pamäte RAM a pohybuje sa od 50 MB (pre systémy so 128 MB RAM) do 800 MB (pre systémy s 8 GB RAM).

Malý výpis pamäte (mini výpis) - obsahuje pomerne malé množstvo informácií: kód chyby s parametrami, zoznam ovládačov načítaných do pamäte RAM v čase zlyhania systému atď., Ale tieto informácie sú dostatočné na identifikáciu neúspešného ovládača. . Ďalšou výhodou tohto typu výpisu je malá veľkosť súboru.

NASTAVENIE SYSTÉMU

Na identifikáciu ovládača, ktorý spôsobil modrú obrazovku, nám bude stačiť použiť malý výpis pamäte. Aby systém počas zlyhania uložil mini výpis, musíte vykonať nasledujúce kroky:

Pre Windows XP Pre Windows 7
  1. Môj počítač Vlastnosti
  2. Prejdite na kartu Okrem toho;
  3. Možnosti;
  4. V teréne Zápis informácií o ladení vyberte si Malý výpis pamäte (64 KB).
  1. Kliknite pravým tlačidlom myši na ikonu Počítač z kontextovej ponuky vyberte Vlastnosti(alebo kombinácia kláves Win+Pause);
  2. V ľavom menu kliknite na položku Ďalšie systémové nastavenia;
  3. Prejdite na kartu Okrem toho;
  4. V poli Stiahnuť a obnoviť kliknite na tlačidlo Možnosti;
  5. V teréne Zápis informácií o ladení vyberte si Malý výpis pamäte (128 KB).

Po vykonaní všetkých manipulácií sa po každom BSoD uloží súbor s príponou .dmp do priečinka C:\WINDOWS\Minidump. Odporúčam vám prečítať si materiál „Ako vytvoriť priečinok“. Môžete tiež zaškrtnúť políčko " Nahradiť existujúci súbor výpisu". V tomto prípade každý nový výpis z havárie prepíše starý. Neodporúčam povoliť túto možnosť.

ANALÝZA VÝPISU PAMÄTE POMOCOU SOFTVÉRU BLUESCREENVIEW

Takže, keď sa objavila modrá obrazovka smrti, systém uložil nový výpis z havárie. Na analýzu výpisu odporúčam použiť program BlueScreenView. Dá sa zadarmo stiahnuť tu. Program je celkom pohodlný a má intuitívne rozhranie. Po jeho nainštalovaní je prvou vecou, ​​ktorú musíte urobiť, určiť miesto na ukladanie výpisov pamäte v systéme. Ak to chcete urobiť, prejdite na položku ponuky „ možnosti“ a zvoľte „ Pokročilémožnosti". Vyberte prepínač naložiťodanasledujúceMini Skládkapriečinok“ a zadajte priečinok, kde sú uložené výpisy. Ak sú súbory uložené v priečinku C:\WINDOWS\Minidump, môžete kliknúť na „ Predvolené". Kliknite na tlačidlo OK a vstúpte do rozhrania programu.

Program pozostáva z troch hlavných blokov:

  1. Blok hlavného menu a ovládací panel;
  2. Blok zoznamu výpisov zrútenia;
  3. V závislosti od zvolených parametrov môže obsahovať:
  • zoznam všetkých ovládačov v pamäti RAM pred zobrazením modrej obrazovky (predvolené);
  • zoznam ovládačov umiestnených v zásobníku RAM;
  • snímka obrazovky BSoD;
  • a ďalšie hodnoty, ktoré nebudeme používať.

V bloku zoznamu výpisov pamäte (na obrázku označený číslom 2) vyberte výpis, ktorý nás zaujíma, a pozrite sa na zoznam ovládačov, ktoré boli načítané do pamäte RAM (na obrázku označené číslom 3). Ovládače, ktoré boli v zásobníku pamäte, sú zafarbené na ružovo. Sú príčinou BSoD. Ďalej prejdite do hlavnej ponuky ovládača a určite, ku ktorému zariadeniu alebo programu patria. V prvom rade si dajte pozor na nesystémové súbory, pretože systémové súbory sa aj tak načítavajú do RAM. Je ľahké vidieť, že myfault.sys je chybný ovládač v obraze. Poviem, že tento program bol špeciálne spustený, aby spôsobil chybu Stop. Po identifikácii chybného ovládača ho musíte aktualizovať alebo odstrániť zo systému.

Aby program zobrazil zoznam ovládačov, ktoré sú v pamäťovom zásobníku počas výskytu BSoD, musíte prejsť na položku ponuky „ možnosti"klikni na menu" NižšiaPanelrežim“ a zvoľte „ IbaVodičiNájdenéInStoh“ (alebo stlačte kláves F7) a ak chcete zobraziť snímku obrazovky s chybou, vyberte možnosť „ ModráObrazovkavXPštýl“ (F8). Ak sa chcete vrátiť do zoznamu všetkých ovládačov, musíte vybrať položku „ VšetkyVodiči“ (F6).

V čase kritického zlyhania operačný systém Windows prestane fungovať a zobrazí sa modrá obrazovka smrti (BSOD). Obsah pamäte RAM a všetky informácie o chybe, ktorá sa vyskytla, sa zapíšu do stránkovacieho súboru. Pri ďalšom Spustenie systému Windows vytvorí sa výpis zlyhaní s informáciami o ladení na základe uložených údajov. V protokole systémových udalostí sa vytvorí záznam závažnej chyby.

Pozor! V prípade zlyhania sa nevygeneruje výpis zlyhaní diskový subsystém alebo sa vyskytla kritická chyba v počiatočnej fáze načítania systému Windows.

Typy výpisov pri zlyhaní systému Windows

Na príklade súčasnej prevádzky systémy Windows 10 (Windows Server 2016) zvážte hlavné typy výpisov pamäte, ktoré môže systém vytvoriť:

  • Mini výpis pamäte (malý výpis pamäte)(256 kB). Tento typ súboru obsahuje minimálne množstvo informácií. Obsahuje iba chybové hlásenie BSOD, informácie o ovládačoch, procesoch, ktoré boli aktívne v čase zlyhania a ktorý proces alebo vlákno jadra spôsobilo zlyhanie.
  • Výpis pamäte jadra. Typicky malá, jedna tretina množstva fyzickej pamäte. Výpis pamäte jadra je podrobnejší ako minidump. Obsahuje informácie o ovládačoch a programoch v režime jadra, zahŕňa pamäť pridelenú jadru Windows a vrstvu hardvérovej abstrakcie (HAL) a pamäť pridelenú ovládačom a iným programom v režime jadra.
  • Úplný výpis pamäte. Najväčšia veľkosť a vyžaduje pamäť rovnajúcu sa RAM vášho systému plus 1 MB, požadovaný systém Windows na vytvorenie tohto súboru.
  • Automatický výpis pamäte. Pokiaľ ide o informácie, zodpovedá výpisu pamäte jadra. Líši sa len tým, koľko miesta využíva na vytvorenie súboru výpisu. Tento typ súboru v systéme Windows 7 neexistoval. Bol pridaný v systéme Windows 8.
  • Aktívny výpis pamäte. Tento typ odfiltruje prvky, ktoré nedokážu určiť príčinu zlyhania systému. Toto bolo pridané do systému Windows 10 a je obzvlášť užitočné, ak používate virtuálny prístroj alebo ak je váš systém hostiteľom Hyper-V.

Ako povoliť generovanie výpisu pamäte v systéme Windows?

Pomocou Win + Pause otvorte okno nastavení systému, vyberte " Ďalšie systémové nastavenia" (Rozšírené nastavenia systému). Na karte " Okrem toho" (Rozšírené), sekcia "" (Spustenie a obnovenie), kliknite na tlačidlo " možnosti" (Nastavenie). V okne, ktoré sa otvorí, nakonfigurujte akcie v prípade zlyhania systému. Začiarknite políčko " Zapisujte udalosti do systémového denníka» (Zapíšte udalosť do systémového denníka), vyberte typ výpisu, ktorý sa má vygenerovať pri zlyhaní systému. Ak je začiarkavacie políčko " Nahradiť existujúci súbor výpisu» (Prepísať akýkoľvek existujúci súbor) začiarknite políčko, súbor sa prepíše pri každom páde. Je lepšie zrušiť začiarknutie tohto políčka, potom budete mať viac informácií na analýzu. Zakázať aj automatický reštart systému (Automaticky reštartovať).

Vo väčšine prípadov bude na analýzu príčiny BSOD stačiť malý výpis pamäte.

Teraz, ak sa vyskytne BSOD, môžete analyzovať súbor výpisu a nájsť príčinu porúch. Minidump je štandardne uložený v priečinku %systemroot%\minidump. Na analýzu súboru výpisu odporúčam použiť program WinDBG(Microsoft Kernel Debugger).

Inštalácia WinDBG na Windows

Utility WinDBG zahrnuté v " Windows 10 SDK» (Windows 10 SDK). .

Súbor sa volá winsdksetup.exe, veľkosť 1,3 MB.

Spustite inštaláciu a vyberte, či chcete balík nainštalovať na tento počítač alebo si ho stiahnuť na inštaláciu na iné počítače. Nainštalujte balík na lokálny počítač.

Môžete nainštalovať celý balík, ale na inštaláciu iba nástroja na ladenie vyberte Nástroje na ladenie pre Windows.

Po nainštalovaní nájdete skratky WinDBG v ponuke Štart.

Nastavenie asociácie súborov .dmp s WinDBG

Ak chcete otvoriť súbory výpisu jednoduchým kliknutím, namapujte príponu .dmp na pomôcku WinDBG.

  1. OTVORENÉ príkazový riadok ako správca a spustite príkazy pre 64-bitový systém: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe –IA
    pre 32-bitový systém:
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
    windbg.exe –IA
  2. V dôsledku toho budú typy súborov: .DMP, .HDMP, .MDMP, .KDMP, .WEW mapované na WinDBG.

Nastavenie servera symbolov ladenia vo WinDBG

Symboly ladenia (symboly ladenia alebo súbory symbolov) sú dátové bloky generované v procese kompilácie programu spolu so spustiteľným súborom. Takéto dátové bloky obsahujú informácie o názvoch premenných, nazývaných funkciách, knižniciach atď. Tieto údaje nie sú potrebné pri spustení programu, ale užitočné pri jeho ladení. Komponenty spoločnosti Microsoft sú zostavené so symbolmi distribuovanými prostredníctvom servera Microsoft Symbol Server.

Nastavte WindDBG na Použitie Microsoft Server symbolov:

  • Otvorte WinDBG;
  • Prejdite do ponuky Súbor –> Cesta k súboru symbolov;
  • Napíšte reťazec obsahujúci adresu URL na stiahnutie symbolov ladenia z webovej lokality spoločnosti Microsoft a priečinok na uloženie vyrovnávacej pamäte: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols V príklade sa stiahne vyrovnávacia pamäť do priečinka E:\Sym_WinDBG, môžete zadať ľubovoľné.
  • Nezabudnite uložiť zmeny v ponuke Súbor–>Uložiť pracovný priestor;

WinDBG vyhľadá symboly v lokálnom priečinku a ak v ňom nenájde potrebné symboly, automaticky stiahne symboly zo zadanej stránky. Ak chcete pridať svoj vlastný priečinok so symbolmi, môžete to urobiť takto:

SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:\Symbols

Ak nie je k dispozícii internetové pripojenie, najskôr si stiahnite balík symbolov zo zdroja balíkov symbolov systému Windows.

Analýza výpisu zrútenia vo WinDBG

Ladiaci program WinDBG otvorí súbor výpisu a stiahne potrebné symboly na ladenie z lokálneho priečinka alebo z internetu. Počas tohto procesu nemôžete používať WinDBG. V spodnej časti okna (v príkazovom riadku ladiaceho programu) sa zobrazí nápis Debugee nie je pripojený.

Príkazy sa zadávajú do príkazového riadku v spodnej časti okna.

Najdôležitejšou vecou, ​​​​ktorú treba venovať pozornosť, je kód chyby, ktorý je vždy uvedený v hexadecimálnu hodnotu a vyzerá ako 0xXXXXXXXXX(uvedené v jednej z možností - STOP:, 7.2.2019 0008F, 0x8F). V našom príklade je kód chyby 0x139.

Ladiaci nástroj vás vyzve na vykonanie príkazu!analyza -v, stačí umiestniť kurzor myši na odkaz a kliknúť. Na čo slúži tento príkaz?

  • Vykonáva predbežnú analýzu výpisu pamäte a poskytuje detailné informácie na spustenie analýzy.
  • Tento príkaz zobrazí kód STOP a symbolický názov chyby.
  • Zobrazuje zásobník volaní príkazov, ktoré viedli k zlyhaniu.
  • Okrem toho sa tu zobrazujú chyby IP adresy, procesov a registrov.
  • Tím môže poskytnúť hotové odporúčania na riešenie problému.

Hlavné body, ktorým by ste mali venovať pozornosť pri analýze po vykonaní príkazu !analyze -v (výpis nie je úplný).

1: kd> !analyzovať -v


* *
*Analýza kontroly chýb*
* *
*****************************************************************************
Symbolický názov chyby STOP (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Popis chyby (Komponent jadra poškodil kritickú dátovú štruktúru. Toto poškodenie môže potenciálne umožniť útočníkovi prevziať kontrolu nad týmto počítačom):

Komponent jadra poškodil kritickú dátovú štruktúru. Poškodenie by mohlo potenciálne umožniť používateľovi so zlými úmyslami získať kontrolu nad týmto počítačom.
Argumenty chyby:

Argumenty:
Arg1: 0000000000000003, položka LIST_ENTRY bola poškodená (t. j. dvojité odstránenie).
Arg2: ffffd0003a20d5d0, adresa rámca pasce pre výnimku, ktorá spôsobila kontrolu chýb
Arg3: ffffd0003a20d528, adresa záznamu výnimky pre výnimku, ktorá spôsobila kontrolu chýb
Arg4: 0000000000000000, rezervované
Podrobnosti ladenia:
------------------

Počítadlo ukazuje, koľkokrát systém zlyhal s podobnou chybou:

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

Kód chyby STOP v skrátenom formáte:

BUGCHECK_STR: 0x139

Proces, ktorý zlyhal (nie nevyhnutne príčinou chyby, len tento proces bežal v pamäti v čase zlyhania):

PROCESS_NAME: sqlservr.exe

Dešifrovanie kódu chyby: Systém v tejto aplikácii zistil pretečenie vyrovnávacej pamäte zásobníka, čo môže útočníkovi umožniť prevziať kontrolu nad touto aplikáciou.

ERROR_CODE: (NTSTATUS) 0xc0000409 - Systém zistil v tejto aplikácii prekročenie vyrovnávacej pamäte založenej na zásobníku. Toto prekročenie by mohlo potenciálne umožniť používateľovi so zlými úmyslami získať kontrolu nad touto aplikáciou.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - Systém v tejto aplikácii zistil prekročenie vyrovnávacej pamäte založenej na zásobníku. Toto prekročenie by mohlo potenciálne umožniť používateľovi so zlými úmyslami získať kontrolu nad touto aplikáciou.

Posledný call na stacku:

LAST_CONTROL_TRANSFER: z ffff8040117d6a9 na ffff8040116b0a0

Zásobník hovorov v čase zlyhania:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`8e:nta20d005CheckK3a20d
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2Ki6BugCheck nt!
ffffd000`3a20d3f0 ffffff804`0117c150: 00000000`00000000 00000000`00000000 00000000 00000000`00000000`00000000`00000000 00000000 0000000000
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000xF3KiR9:Chaeck3006KiR9
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 ?? ::FNODOBFM::`string"+0x17252
ffffd000`3a20d8c0 ffff804`013a34ac: 00000000`00000004 00000000`00000000
ffffd000`3a20d990 ffffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Fieb ​​Fieb`a0xf14t
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000 00000000`00000000`00000000`00000000 00000000 00000000 pynt3000000000000000 0
000000ee'f25ed2b8 00000000'00000000: 00000000'00000000 00000000'00000000 00000000 00000000 00000000

Časť kódu, kde sa vyskytla chyba:

FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr ,0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: Vlastník stroja

Názov modulu v tabuľke objektov jadra. Ak sa analyzátoru podarilo zistiť problematický ovládač, názov sa zobrazí v poliach MODULE_NAME a IMAGE_NAME:

MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe

1: kd > lmvm nt
Prezrite si úplný zoznam modulov
Načítaný súbor obrázka symbolu: ntkrnlmp.exe
Súbor obrázka namapovanej pamäte: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
Cesta k obrázku: ntkrnlmp.exe
Názov obrázku: ntkrnlmp.exe
Interný názov: ntkrnlmp.exe
Pôvodný názov súboru: ntkrnlmp.exe
Verzia produktu: 6.3.9600.18946
FileVersion: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

Vo vyššie uvedenom príklade analýza poukázala na súbor jadra ntkrnlmp.exe. Keď analýza výpisu pamäte indikuje systémový ovládač(napríklad win32k.sys) alebo súbor jadra (ako v našom príklade ntkrnlmp.exe), s najväčšou pravdepodobnosťou daný súbor nie je príčinou problému. Veľmi často sa ukazuje, že problém spočíva v ovládači zariadenia, nastavenia systému BIOS alebo porucha zariadenia.

Ak zistíte, že BSOD je spôsobený ovládačom tretej strany, jeho názov bude uvedený v hodnotách MODULE_NAME a IMAGE_NAME.

Napríklad:

Cesta k obrázku: \SystemRoot\system32\drivers\cmudaxp.sys
Názov obrázku: cmudaxp.sys

Otvorte vlastnosti súboru ovládača a skontrolujte jeho verziu. Vo väčšine prípadov je problém s ovládačmi vyriešený ich aktualizáciou.

Chyby sa vo Windows stávajú veľmi často, dokonca aj v prípade „čistého“ systému. Zatiaľ čo bežné chyby programu je možné vyriešiť (zobrazí sa hlásenie o chýbajúcom komponente), potom bude oveľa ťažšie opraviť kritické chyby.

Čo je výpis pamäte v systéme Windows

Na vyriešenie problémov so systémom sa zvyčajne používa výpis z havárie - toto je obrázokčasť alebo celé množstvo pamäte RAM a jej umiestnenie na energeticky nezávislé médium ( HDD). Inými slovami, obsah pamäte RAM sa úplne alebo čiastočne skopíruje na médium a používateľ môže analyzovať výpis pamäte.

Existuje niekoľko typov výpisov pamäte:

Malá skládka(Small Memory Dump) - šetrí minimálne množstvo pamäte RAM, kde sú informácie o kritických chybách (BSoD) a komponentoch, ktoré boli načítané počas prevádzky systému, napríklad ovládače, programy. MiniDump uložené v ceste C:\Windows\Minidump.

Plná skládka(Complete Memory Dump) – šetrí celé množstvo pamäte RAM. To znamená, že veľkosť súboru sa bude rovnať množstvu pamäte RAM. Ak je na disku málo miesta, bude problematické uložiť napríklad 32 GB. Problémy sú aj pri vytváraní súboru výpisu pamäte väčšieho ako 4 GB. Tento typ používané veľmi zriedkavo. Uložené pozdĺž cesty C:\Windows\MEMORY.DMP.

Skládka pamäť jadra– ukladajú sa iba informácie týkajúce sa jadra systému.

Keď používateľ dospeje k analýze chyby, stačí mu použiť iba minidamp (small dump). Predtým však musí byť zapnutý, inak nebude možné rozpoznať problém. Pre efektívnejšiu detekciu chýb je tiež vhodnejšie použiť snímku celej pamäte.

Informácie v registri

Ak sa pozriete do Registry systému Windows, nájdete niekoľko užitočných možností snímky. Stlačte kombináciu klávesov Win + R, zadajte príkaz regedit a otvorte nasledujúce pobočky:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

V tejto pobočke používateľ nájde nasledujúce možnosti:

  • autoreboot- Aktivujte alebo deaktivujte reštart po modrej obrazovke smrti (BSoD).
  • DumpFile– názov typov skládok a umiestnenie.
  • CrashDumpEnabled- izba vytvorený súbor, napríklad číslo 0 - nevytvára sa žiadny výpis; 1 – vytvorenie úplného výpisu; 2 - vytvorenie jadrovej skládky; 3 - vytvorenie malej skládky.
  • DumpFilters– možnosť vám umožňuje pridať nové funkcie pred vytvorením snímky. Napríklad šifrovanie súborov.
  • MinidumpDir– názov malej skládky a jej umiestnenie.
  • protokolovať udalosť– aktivácia zaznamenávania informácií do systémového denníka.
  • MinidumpsCount– nastavte počet malých skládok, ktoré sa majú vytvoriť. (Prekročenie tohto počtu zničí staré súbory a nahradí ich).
  • Prepísať– funkcia pre úplný výpis alebo výpis systému. Pri vytváraní novej snímky bude predchádzajúca vždy nahradená novou.
  • DedicatedDumpFile- tvorenie alternatívny súbor snímku a špecifikujte jej cestu.
  • IgnorePagefileSize- používa sa na dočasné nájdenie snímky bez použitia stránkovacieho súboru.

Ako to funguje

Ak dôjde k zlyhaniu, systém úplne zastaví svoju prácu a ak je aktívny dumping, zapíše sa súbor umiestnený na disku informácie o probléme. Ak sa niečo stalo s fyzickými komponentmi, núdzový kód bude fungovať a hardvér, ktorý zlyhal, vykoná akékoľvek zmeny, čo sa určite prejaví na snímke.

Zvyčajne je súbor uložený v bloku pridelenom pre odkladací súbor. pevný disk, po zobrazení BSoD sa súbor prepíše vo forme, ktorú si používateľ sám nakonfiguroval (Small, full alebo core dump). Aj keď v moderných operačných systémoch nie je potrebná účasť odkladacieho súboru.

Ako povoliť výpisy

AT Windows 7:

AT Windows 8 a 10:

Tu je proces trochu podobný, môžete sa dostať do systémových informácií rovnakým spôsobom ako v systéme Windows 7. V "Ten" nezabudnite otvoriť " Tento počítač", kliknite na voľné miesto pravé tlačidlo myši a vyberte " Vlastnosti". V opačnom prípade sa tam môžete dostať cez Ovládací panel.

Druhá možnosť pre Widows 10:


Treba poznamenať, že v nov Verzie systému Windows Objavilo sa 10 nových položiek, ktoré neboli v „sedmičke“:

  • Malá skládka 256 KB pamäte je minimálny údaj o poruche.
  • Aktívny výpis- objavil sa v desiatej verzii systému a ukladá iba aktívnu pamäť počítača, systémové jadro a používateľa. Odporúčané pre použitie na serveroch.

Ako odstrániť výpis

Stačí prejsť do adresára, kde sú uložené snímky pamäte a jednoducho ich vymazať. Existuje však aj iný spôsob, ako odstrániť - pomocou nástroja na čistenie disku:

Ak sa nenašli žiadne položky, výpisy nemusia byť povolené.

Aj keď ste ich raz povolili, niektoré z nástrojov na optimalizáciu systému, ktoré používate, môžu jednoducho fungovať vypnúť niektoré funkcie. Pri používaní sa často veľa vecí vypne SSD disky, pretože opakované postupy čítania a zápisu značne poškodzujú zdravie tohto disku.

Analýza výpisu pamäte pomocou WinDbg

Stiahnite si z oficiálnej webovej stránky spoločnosti Microsoft tento program v kroku 2, kde " InštaláciaWDK» - https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk .

Na prácu s programom ešte potrebujete špeciálny balík ladiacich symbolov. To sa nazýva Symboly ladenia, predtým ste si ho mohli stiahnuť z webu Microsoftu, no teraz od tohto nápadu upustili a budete musieť funkciu použiť Program File — « Cesta k súboru symbolov“, kde by ste mali zadať nasledujúci riadok a kliknúť na tlačidlo OK:

nastaviť _NT_SYMBOL_PATH=srv*DownstreamStore*https://msdl.microsoft.com/download/symbols

Ak to nefunguje, skúste tento príkaz:

SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols

Znova kliknite na „Súbor“ a vyberte možnosť „Uložiť pracovný priestor“.

Pomôcka je nakonfigurovaná. Zostáva zadať cestu k súborom výpisu pamäte. Ak to chcete urobiť, kliknite na Súbor a kliknite na možnosť „ OperomZrútiť saSkládka". Umiestnenie všetkých skládok je uvedené na začiatku článku.

Po výbere sa analýza ukončí a problematický komponent sa automaticky zvýrazní. Ak chcete získať ďalšie informácie v tom istom okne, môžete zadať nasledujúci príkaz: !rozoberať -v

Analýza pomocou BlueScreenView

Nástroj si môžete bezplatne stiahnuť z tejto stránky – http://www.nirsoft.net/utils/blue_screen_view.html . Inštalácia nevyžaduje žiadne zručnosti. Používa sa iba v systéme Windows 7 a novšom.

Začíname a konfigurujeme. Kliknite na "Nastavenia" (Možnosti) - " Extra možnosti" (Pokročilé nastavenia). Vyberte prvú položku " Načítať minidumps z tohto priečinka" a zadajte adresár - C:\WINDOWS\Minidump. Aj keď stačí kliknúť na tlačidlo "Predvolené". Stlačíme OK.

Súbory výpisu by sa mali objaviť v hlavnom okne. Môže byť jeden alebo niekoľko. Ak ho chcete otvoriť, stačí naň kliknúť myšou.

V spodnej časti okna sa zobrazia komponenty, ktoré boli aktívne v čase poruchy. Vinník nehody bude zvýraznený červenou farbou.

Teraz kliknite na "Súbor" a vyberte napríklad položku " Nájsť v Gokód chyby ogle + ovládač". Ak sa nájde správny vodič, nainštalujte a reštartujte počítač. Možno chyba zmizne.