Hoe u een Windows 10-geheugendumpbestand maakt Het WinDbg-programma gebruiken om crashgeheugendumps te analyseren. Analyse van geheugendumps

In Windows 8 introduceerde Microsoft een nieuwe geheugendump: een automatische geheugendumpoptie. Deze instelling is standaard ingesteld in het besturingssysteem. In Windows 10 geïntroduceerd nieuw type dumpbestand - actieve dump geheugen. Voor degenen die het niet weten: in Windows 7 hebben we een kleine dump, een kerndump en een volledige kerndump. Je vraagt ​​je misschien af ​​waarom Microsoft heeft besloten dit te maken nieuwe parameter geheugendump? Volgens Robert Simpkins, senior support engineer, kan een automatische geheugendump ondersteuning creëren voor de “systeem”-pagina in het configuratiebestand.
Het configuratiebeheersysteem voor wisselbestanden is verantwoordelijk voor het beheer van de grootte van het wisselbestand - dit voorkomt onnodige speelruimte of wisselbestandsgrootte. Deze optie is voornamelijk geïntroduceerd voor pc's die op SSD-schijven draaien, wat meestal het geval is kleiner formaat, maar een enorm bedrag RAM.

Opties voor geheugendumps

Het belangrijkste voordeel van “Automatische geheugendump” is dat de subsysteemsessie in de procesmanager hierdoor automatisch het paginabestand kan verkleinen tot een formaat dat kleiner is dan het RAM-geheugen. Voor degenen die het niet weten: de subsysteembeheerdersessie is verantwoordelijk voor de systeeminitialisatie, de opstartomgeving voor services en processen die nodig zijn voor de gebruiker om in te loggen op het systeem. Het installeert in feite een pagina met bestanden in het virtuele geheugen en start het proces winlogon.exe.

Als u uw automatische geheugendumpinstellingen wilt wijzigen, kunt u dit als volgt doen. Klik Windows-toetsen+ X en selecteer - Systeem. Klik vervolgens op de “ Extra opties systemen - Voorschot Systeem Instellingen”.

Klik op de knop Geavanceerde systeeminstellingen.

Hier ziet u een vervolgkeuzemenu met de tekst 'Geavanceerd'.

Hier kunt u de gewenste optie selecteren. Voorgestelde opties:

Geen geheugendumps.
Kleine geheugendump.
Kernel-geheugendump.
Volledige geheugendump.
Automatische geheugendump. Toegevoegd aan Windows 8.
Actieve geheugendump. Toegevoegd aan Windows 10.
De locatie van het geheugendumpbestand bevindt zich in het bestand %SystemRoot%\MEMORY.DMP.

Als u gebruikt SSD-schijf, dan is het beter om het op “Automatische geheugendump” te laten staan; maar als je een crashdumpbestand nodig hebt, kun je het beter instellen op “kleine geheugendump”, daarmee kun je het, als je wilt, naar iemand sturen zodat die er naar kan kijken.

In sommige gevallen moet u mogelijk de grootte van het paginabestand groter maken dan het RAM-geheugen, zodat het in een volledige geheugendump past. In dergelijke gevallen moet u een registersleutel maken:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

het heet "LastCrashTime".

Hierdoor wordt de grootte van het wisselbestand automatisch vergroot. Om het later te verkleinen, kunt u deze sleutel eenvoudig verwijderen.

In Windows 10 geïntroduceerd nieuw bestand dump actieve geheugendump. Het bevat alleen de essentiële zaken en is daarom kleiner van formaat.

Ik heb geen manier om het te testen, maar ik heb deze sleutel gemaakt en de paginabestandsgrootte gecontroleerd. Ik weet dat ik vroeg of laat een kritieke fout zal krijgen. Dan zal ik het controleren.

Je kunt de dump analyseren Windows-geheugen.dmp-bestanden via WhoCrashed. WhoCrashed Home is een gratis hulpprogramma dat met één klik stuurprogramma's levert die op uw computer zijn geïnstalleerd. In de meeste gevallen kan het een defect stuurprogramma identificeren dat problemen op uw computer veroorzaakt. Dit is een crashdump voor systeemanalyse, geheugendumps en alle verzamelde informatie wordt hier in een toegankelijke vorm gepresenteerd.

Doorgaans opent de foutopsporingstoolkit een analyse-crashdump. Met dit hulpprogramma heeft u geen kennis of foutopsporingsvaardigheden nodig om erachter te komen welke stuurprogramma's problemen op uw computer veroorzaken.

WhoCrashed vertrouwt op een debugging-pakket (het windbg-programma) van Microsoft. Als dit pakket niet is geïnstalleerd, zal WhoCrashed dit pakket voor u downloaden en automatisch uitpakken. Voer gewoon het programma uit en klik op de knop Analyseren. Wanneer WhoCrashed op uw systeem is geïnstalleerd en het crasht of onverwachts wordt afgesloten, laat het programma u weten of crashdumping op uw computer is ingeschakeld en worden er suggesties gegeven over hoe u deze kunt inschakelen.

Hoe vaak moet je naar het scherm kijken? dood van Windows(BSoD)? BSoD kan voorkomen in verschillende gevallen: zowel tijdens het werken met het systeem als tijdens het opstartproces besturingssysteem. Hoe kan ik bepalen wat de oorzaak is van BSoD en dit probleem oplossen? operatiekamer Windows-systeem kan een geheugendump opslaan als er een fout optreedt, zodat de systeembeheerder de dumpgegevens kan analyseren en de oorzaak kan achterhalen optreden van BSoD.

Er zijn twee soorten geheugendumps: klein (minidump) en vol. Afhankelijk van de instellingen van het besturingssysteem kan het systeem volledige of kleine dumps opslaan of geen actie ondernemen wanneer er een fout optreedt.

Langs het pad bevindt zich een kleine stortplaats %systemroot%\minidump en heeft een naam als Minixxxxxx-xx.dmp
De volledige stortplaats bevindt zich langs het pad %systeemroot% en heeft een naam als Memory.dmp

Om de inhoud van geheugendumps te analyseren, moet u gebruiken speciaal hulpprogramma- Microsoft Kernel-foutopsporing.
U kunt het programma en de componenten die nodig zijn voor de werking ervan rechtstreeks verkrijgen via de Microsoft-website - Debugging Tools

Bij het kiezen van een debugger moet u rekening houden met de versie van het besturingssysteem waarop u geheugendumps moet analyseren. Voor een 32-bits besturingssysteem is de 32-bits versie van de debugger vereist, en voor een 64-bits besturingssysteem verdient het de voorkeur om de 64-bits versie van de debugger te gebruiken.

Naast het pakket zelf Hulpmiddelen voor foutopsporing voor Windows, hebt u ook een set foutopsporingssymbolen nodig: Debugging Symbols. De set foutopsporingssymbolen is specifiek voor elk besturingssysteem waarop de BSoD is opgenomen. Daarom moet u een set symbolen downloaden voor elk besturingssysteem waarvan u de werking moet analyseren. Voor een 32-bits Windows XP is de 32-bits tekenset van Windows XP vereist; voor een 64-bits besturingssysteem is de 64-bits tekenset van Windows XP vereist. Voor andere besturingssystemen Windows-familie tekensets worden volgens hetzelfde principe geselecteerd. U kunt hier foutopsporingssymbolen downloaden. Het wordt aanbevolen om ze te installeren op %systeemhoofd%\symbolen

Nadat u de debugger en debug-symbolen hebt geïnstalleerd, start u de debugger. Het debuggervenster na het starten ziet er als volgt uit.

Voordat u de inhoud van een geheugendump analyseert, moet u dit doen kleine opstelling debugger Vertel het programma specifiek waar het moet zoeken naar foutopsporingssymbolen. Om dit te doen, selecteert u in het menu Bestand > Symboolbestandspad... Klik op de knop Bladeren... en geef de map aan waarin we de foutopsporingssymbolen voor de betreffende geheugendump hebben geïnstalleerd.

Informatie over de benodigde foutopsporingssymbolen kunt u rechtstreeks via internet opvragen met openbare server Microsoft. Op deze manier heb je het meeste nieuwe versie karakters. U kunt dit als volgt doen: voer in het menu Bestand > Symboolbestandspad… het volgende in: SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols

Nadat u het pad naar de foutopsporingssymbolen hebt opgegeven, selecteert u Bestand > Werkruimte opslaan in het menu en bevestigt u de actie door op OK te klikken.

Om te beginnen met het analyseren van de geheugendump, selecteert u Bestand > Crashdump openen... in het menu en selecteert u het bestand dat nodig is voor onderzoek.

Het systeem analyseert de inhoud, waarna het een resultaat oplevert over de vermoedelijke oorzaak van de fout.

De opdracht !analyze -v die aan de debugger wordt gegeven in opdrachtregel, zal meer gedetailleerde informatie weergeven.

U kunt het debuggen stoppen door het menu-item Debug > Stop Debugging te selecteren

Met het Debugging Tools for Windows-pakket kunt u dus altijd genoeg krijgen volledig zicht over de oorzaken van systeemfouten.

Goedemiddag, beste collega's en lezers van de blogsite. Vandaag wil ik je vertellen hoe je een Windows 10 Redstone-geheugendump analyseert. Dit gebeurt in de meeste gevallen wanneer u een blue screen of death krijgt met een foutmelding, waarna uw computer opnieuw opstart. EN deze analyse helpt de oorzaak van de storing te begrijpen.

Een Windows 10-geheugendump instellen

Dus, wat is een geheugendump in het Windows 10 Redstone-besturingssysteem. Ik heb het je hierboven beschreven, heel erg gemeenschappelijke reden waarin een systeemgeheugendump verschijnt en dit zijn blauwe schermen van de dood. De redenen voor hun uiterlijk zijn zeer uitgebreid:

  • Incompatibiliteit van toepassingen
  • Incompatibiliteit met stuurprogramma's
  • Nieuwe Windows-updates
  • Apparaten zijn niet compatibel

Dit is slechts een kleine algemene lijst, aangezien er heel veel foutcodes van blauwe schermen zijn, zal ik de meest recente geven.

Het is onze taak om deze bestanden voor diagnostiek te kunnen vinden en ze te kunnen interpreteren om informatie over het probleem te verkrijgen.

Waar configureert u een Windows 10-crashdump?

Laten we eerst eens kijken waar de instelling is gemaakt die verantwoordelijk is voor de crash-geheugendump van Windows 10. Klik met de rechtermuisknop op de startknop van Windows 10 en vanaf contextmenu selecteer Systeem.

In het Systeemvenster dat wordt geopend, bevindt u zich aan de linkerkant bovenste hoek selecteer Geavanceerde systeeminstellingen.

Dit is waar de geheugendump van Windows 10 is geconfigureerd. Klik op het item Instellingen in Boot and Recovery.

Uit de instellingen van de Windows 10-geheugendump zou ik het volgende willen opmerken:

  • Een gebeurtenis opnemen in systeemlog> hier informatie over blauw scherm worden toegevoegd aan de logboeken van het besturingssysteem.
  • Voer een automatische herstart uit > om na een fout verder te werken
  • Dossier foutopsporingsinformatie> hiermee kunt u het type dumpbestand selecteren, daarover hieronder meer.
  • Vervangen bestaand bestand dump, een handig selectievakje, omdat deze dumps tientallen gigabytes kunnen wegen, wat erg belangrijk is voor kleine SSD-schijven.

Soorten geheugendumps

Laten we eens kijken naar de verschillen tussen de opties voor het vastleggen van foutopsporingsinformatie

  • Kleine geheugendump 256 KB: kleine geheugendumpbestanden bevatten de volgende informatie:

– bericht over een fatale fout, de parameters en andere gegevens;

– lijst met geladen stuurprogramma's;

– verwerkercontext ( PRCB) waarop de storing heeft plaatsgevonden;

EPROCES) voor het proces dat de fout veroorzaakte;

– procesinformatie en kernelcontext ( EDRAAD) voor de thread die de fout veroorzaakte;

– Kernelmodusaanroepstack voor de thread die de fout heeft veroorzaakt.

Het wordt gebruikt als je heel weinig hebt schijfruimte op jouw lokale schijf. Hierdoor offeren we nuttige informatie op, die misschien niet voldoende is om een ​​blauw scherm te diagnosticeren.

De minidump wordt opgeslagen in het pad C:\Windows\Minidump

  • Kernelgeheugendump > registreert alleen kernelgeheugen. Afhankelijk van de hoeveelheid fysiek geheugen van de pc heeft het wisselbestand in dit geval 50 tot 800 geheugenplaatsen nodig. MB of een derde van het fysieke geheugen van de computer aan opstartvolume.
  • Volledige geheugendump > nou ja, alles is duidelijk uit de naam. Het schrijft absoluut alles, dit is de maximale informatie over het blauwe scherm, het geeft een honderd procent diagnose van het probleem.

Gelegen op C:\Windows\Memory.dmp

  • Actieve geheugendump > het actieve geheugen van de hostmachine komt hier, deze functie is meer voor serverplatforms, omdat ze kunnen worden gebruikt voor virtualisatie en zodat informatie over virtuele machines niet in de dump terechtkomt, is deze optie uitgevonden.

Wanneer er een fatale fout wordt gedetecteerd, maken alle Windows-systemen een crashdump (momentopname) van de inhoud van het RAM-geheugen en slaan deze op harde schijf. Er zijn drie soorten geheugendumps:

Volledige geheugendump – slaat de volledige inhoud van RAM op. De afbeeldingsgrootte is gelijk aan de grootte van RAM + 1 MB (header). Zeer zelden gebruikt, omdat op systemen met grote hoeveelheden geheugen de dumpgrootte te groot zal zijn.

Kernelgeheugendump – slaat alleen RAM-informatie op die betrekking heeft op de kernelmodus. Informatie over de gebruikersmodus wordt niet opgeslagen omdat deze geen informatie bevat over de oorzaak van de systeemcrash. De grootte van het dumpbestand is afhankelijk van de grootte van het RAM-geheugen en varieert van 50 MB (voor systemen met 128 MB RAM) tot 800 MB (voor systemen met 8 GB RAM).

Kleine geheugendump (minidump) - bevat een vrij kleine hoeveelheid informatie: een foutcode met parameters, een lijst met stuurprogramma's die in het RAM zijn geladen op het moment van de systeemcrash, enz., maar deze informatie is voldoende om het defecte stuurprogramma te identificeren . Een ander voordeel van dit type dump is de kleine bestandsgrootte.

Systeemconfiguratie

Om de driver te identificeren die dit heeft veroorzaakt, is het voldoende dat we een kleine geheugendump gebruiken. Om ervoor te zorgen dat het systeem tijdens een crash een minidump opslaat, moet u de volgende stappen uitvoeren:

Voor Windows XP Voor Windows 7
  1. Mijn computer Eigenschappen
  2. Ga naar het tabblad Aanvullend;
  3. Parameters;
  4. In het veld Foutopsporingsinformatie schrijven kiezen Kleine geheugendump (64 KB).
  1. Klik met de rechtermuisknop op het pictogram Computer selecteer in het contextmenu Eigenschappen(of de Win+Pauze-toetscombinatie);
  2. Klik in het linkermenu op het item Geavanceerde systeeminstellingen;
  3. Ga naar het tabblad Aanvullend;
  4. Klik in het veld Downloaden en herstellen op de knop Parameters;
  5. In het veld Foutopsporingsinformatie schrijven kiezen Kleine geheugendump (128 KB).

Nadat alle manipulaties zijn voltooid, wordt na elke BSoD een bestand met de extensie .dmp opgeslagen in de map C:\WINDOWS\Minidump. Ik raad je aan om het materiaal "" te lezen. U kunt ook het vakje “ Vervang het bestaande dumpbestand" In dit geval wordt elke nieuwe crashdump over de oude geschreven. Ik raad niet aan deze optie in te schakelen.

Een crashdump analyseren met BlueScreenView

Dus nadat het Blue Screen of Death verscheen, bewaarde het systeem een ​​nieuwe crashgeheugendump. Om de dump te analyseren, raad ik aan om te gebruiken BlueScreenView-programma. Het kan gratis worden gedownload. Het programma is best handig en heeft intuïtieve interface. Nadat u het hebt geïnstalleerd, moet u eerst de locatie opgeven voor het opslaan van geheugendumps op het systeem. Ga hiervoor naar het menu-item “ Opties' en selecteer ' GeavanceerdOpties" Selecteer het keuzerondje “ LadenvandevolgendeMini-dumpmap' en geef de map op waarin de dumps zijn opgeslagen. Als de bestanden zijn opgeslagen in de map C:\WINDOWS\Minidump, kunt u op de knop “ Standaard" Klik op OK en ga naar de programma-interface.

Het programma bestaat uit drie hoofdblokken:

  1. Hoofdmenublok en bedieningspaneel;
  2. Crashdumplijstblok;
  3. Afhankelijk van de geselecteerde parameters kan het het volgende bevatten:
  • een lijst met alle stuurprogramma's in RAM voordat het blauwe scherm verschijnt (standaard);
  • een lijst met stuurprogramma's in de RAM-stack;
  • BSoD-screenshot;
  • en andere waarden die we niet zullen gebruiken.

Selecteer in het geheugendumplijstblok (gemarkeerd met nummer 2 in de afbeelding) de dump waarin we geïnteresseerd zijn en bekijk de lijst met stuurprogramma's die in RAM zijn geladen (gemarkeerd met nummer 3 in de afbeelding). Roze kleur stuurprogramma's die zich op de geheugenstack bevonden, zijn gekleurd. Zij zijn de reden verschijning van BSoD. Ga vervolgens naar het hoofdmenu van de bestuurder en bepaal tot welk apparaat of programma ze behoren. Let allereerst op systeembestanden, omdat systeembestanden sowieso in het RAM worden geladen. Het is gemakkelijk te zien dat het defecte stuurprogramma in de afbeelding myfault.sys is. Ik zal zeggen dat dit programma speciaal is gelanceerd om te bellen Stop fouten. Nadat u het defecte stuurprogramma hebt geïdentificeerd, moet u het bijwerken of van het systeem verwijderen.

Om ervoor te zorgen dat het programma een lijst met stuurprogramma's weergeeft die zich op de geheugenstack bevinden wanneer een BSoD optreedt, moet u naar het menu-item " Opties“klik op menukaart” LagerPaneelModus' en selecteer ' AlleenChauffeursGevondenInStapel' (of druk op de F7-toets), en om een ​​schermafbeelding van de fout weer te geven, selecteert u ' BlauwScherminXPStijl” (F8). Om terug te keren naar de lijst met alle chauffeurs, moet u “ AlleChauffeurs” (F6).

Een van de meest voorkomende mislukkingen Windows-bediening- systeemuitzonderingen die de gebruiker ziet in de vorm van een “blue screen of death” (BSOD). In de regel dit fatale fout treedt op als gevolg van een storing in stuurprogramma's, hardware (meestal bij het laden van het besturingssysteem) of als gevolg van de werking van virussen en antivirusprogramma's.

Het blauwe scherm van de dood bevat informatie over de redenen die de uitzondering veroorzaakten (in de vorm van een STOP-foutcode in de vorm 0x0000007b), geheugenadressen die werden gebruikt toen een uitzondering optrad, en andere nuttige informatie. Dergelijke informatie wordt een STOP-fout genoemd, waarvan de variabele parameters precies geheugenadressen zijn. Soms bevat het ook de naam van het bestand dat de uitzondering veroorzaakte.

Al deze informatie wordt niet lang (maximaal 100 seconden) op het scherm weergegeven, waarna de computer opnieuw opstart. Gedurende deze korte tijd wordt in de regel een geheugendump gegenereerd en naar een bestand geschreven. Een van de belangrijkste professionele manieren foutdiagnose - geheugendumpanalyse, die in dit artikel in detail zal worden besproken.

Wat is een puinhoop

  • dump (Engels) - vuilnisbelt; dumpen; gat; sloppenwijk.
  • dumpen ( geheugendump) – 1) dumpen, de inhoud van het RAM-geheugen uitvoeren om af te drukken of op het scherm te zetten; 2) een “momentopname” van RAM; gegevens verkregen als gevolg van dumping; 3) noodverwijdering, uitschakeling, reset.
  • dumpen - dumpen, dumpen verwijderen.

Instellingen voor het opslaan van een geheugendump worden opgeslagen in systeem register Ramen.

Informatie over de geheugendump in het systeemregister:

In de sectie Windows-register crashdump wordt gedetecteerd de volgende parameters:

– REG_DWORD-parameter AutoReboot met de waarde 0×1 (optie Automatisch het hulpvenster Boot and Restore van het dialoogvenster Systeemeigenschappen opnieuw opstarten);

– REG_DWORD-parameter CrashDumpEnabled met een waarde van 0×0, als er geen geheugendump is gemaakt; 0×1 – Volledige geheugendump; 0×2 – Kernelgeheugendump; 0x3 – Kleine geheugendump (64KB);

– REG_EXPAND_SZ DumpFile-parameter met de standaardwaarde %SystemRoot%\MEMORY.DMP (opslaglocatie van dumpbestand);

– REG_DWORD parameter LogEvent met een standaardwaarde van 0×1 (optie Loggebeurtenis naar het systeemlogboek van het Boot and Recovery-venster);

– REG_EXPAND_SZ MinidumpDir-parameter met de standaardwaarde %SystemRoot%\Minidump (optie voor kleine dumpmap in het venster Boot and Recovery);

– REG_DWORD-parameter Overschrijven met een standaardwaarde van 0×1 (optie Overschrijf bestaand dumpbestand van het Boot and Restore-venster);

– REG_DWORD-parameter SendAlert met een standaardwaarde van 0x1 (optie Stuur administratieve waarschuwing van het opstart- en herstelvenster).

Hoe het systeem een ​​crashdumpbestand maakt

Tijdens het opstarten controleert het besturingssysteem de crashdumpinstellingen in de registersleutel. Als er ten minste één parameter is opgegeven, genereert het systeem een ​​kaart van schijfblokken die worden ingenomen door het wisselbestand op het opstartvolume en slaat deze op in het geheugen. Het systeem bepaalt ook welke bestuurder schijf apparaat beheert het opstartvolume, berekent controlesommen voor het geheugenimage van de driver en voor datastructuren die integer moeten zijn voordat de driver I/O-bewerkingen kan uitvoeren.

Na een storing controleert de systeemkernel de integriteit van de paginabestandsmap, schijf stuurprogramma en besturingsstructuren voor schijfstuurprogramma's. Als de integriteit van deze structuren niet wordt geschonden, roept de kern van het systeem speciale functies I/O-schijfstuurprogramma, ontworpen om een ​​geheugenimage op te slaan na een systeemfout. Deze I/O-functies staan ​​op zichzelf en zijn niet afhankelijk van kernelservices, omdat de programma's die verantwoordelijk zijn voor het schrijven van de crashdump geen enkele aanname kunnen doen over welke delen van de systeemkernel of apparaatstuurprogramma's beschadigd raakten toen er een crash plaatsvond. De systeemkernel schrijft gegevens uit het geheugen naar de sectorkaart van het wisselbestand (de systeemkernel hoeft geen bestandssysteemstuurprogramma's te gebruiken).

Eerst controleert de systeemkernel de status van elke component die betrokken is bij het dumpproces. Dit wordt gedaan zodat bij rechtstreeks schrijven naar schijfsectoren de gegevens buiten het paginabestand niet worden beschadigd. De paginabestandsgrootte moet 1 MB zijn groter formaat fysiek geheugen, omdat wanneer informatie naar een dump wordt geschreven, er een header wordt gemaakt die de handtekening van de crashdump en de waarden van verschillende belangrijke systeemkernelvariabelen bevat. De header is minder dan 1 MB, maar het besturingssysteem kan de grootte van het paginabestand met minimaal 1 MB vergroten (of verkleinen).

Na het opstarten van het systeem Sessiebeheerder(Windows NT Session Manager; schijfadres - \WINDOWS\system32\smss.exe) initialiseert de systeempaginabestanden met behulp van eigen functie NtCreatePagingFile. NtCreatePagingFile bepaalt of het paginabestand dat wordt geïnitialiseerd bestaat en, zo ja, of het een dumpheader heeft. Als er een header is, stuurt NtCreatePagingFile deze naar Session Manager speciale code. Hierna start Sessiebeheer Winlogon-proces(Windows NT Logon Program; schijfadres is \WINDOWS\system32\winlogon.exe) dat op de hoogte wordt gesteld van het bestaan ​​van een crashdump. Winlogon voert het SaveDump-programma uit (Windows NT Memory Copy Program; schijfadres - \WINDOWS\system32\savedump.exe), dat de dumpheader parseert en bepaalt verdere acties in geval van nood.

Als de header het bestaan ​​van een dump aangeeft, kopieert SaveDump de gegevens van het paginabestand naar het crashdumpbestand, waarvan de naam wordt opgegeven door de parameter REG_EXPAND_SZ van de sectie DumpFile van het register. Terwijl SaveDump het dumpbestand herschrijft, gebruikt het besturingssysteem niet het deel van het paginabestand dat de crashdump bevat. Op dit moment het volume virtueel geheugen, beschikbaar voor het systeem en de applicaties, wordt verkleind met de grootte van de dump (tegelijkertijd kunnen er berichten op het scherm verschijnen die wijzen op een gebrek aan virtueel geheugen). SaveDump informeert vervolgens de geheugenbeheerder dat het opslaan van de dump is voltooid en geeft het deel van het paginabestand waarin de dump is opgeslagen vrij voor algemeen gebruik.

Nadat het dumpbestand is opgeslagen, registreert het SaveDump-programma de creatie van een crashdump in het systeemgebeurtenislogboek, bijvoorbeeld: “De computer is opnieuw opgestart nadat kritische fout: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 0xc84d90a6). Geheugenkopie opgeslagen: C:\WINDOWS\Minidump\Mini060309-01.dmp".

Als de optie Beheerderswaarschuwing verzenden is ingeschakeld, stuurt SaveDump een waarschuwing naar de beheerder.

Soorten stortplaatsen

  • Volledige geheugendump registreert alle inhoud systeem geheugen wanneer er een fatale fout optreedt. Voor deze optie moet u een wisselbestand op het opstartvolume hebben, waarvan de grootte gelijk is aan de hoeveelheid al het fysieke RAM plus 1 MB. Standaard wordt een volledige geheugendump naar het bestand %SystemRoot%\Memory.dmp geschreven. Wanneer dan ook nieuwe fout en het maken van een nieuw volledig geheugendumpbestand (of kernelgeheugendump) vorig bestand wordt vervangen (overschreven). De optie Volledige geheugendump is niet beschikbaar op pc's met een 32-bits besturingssysteem en 2 gigabyte of meer RAM.

Wanneer er een nieuwe fout optreedt en er een nieuw volledig geheugendumpbestand wordt gemaakt, wordt het vorige bestand vervangen.

  • Kernel-geheugendump schrijft alleen kernelgeheugen, waardoor het proces van het schrijven van gegevens naar het logboek wanneer het systeem plotseling stopt sneller verloopt. Afhankelijk van de hoeveelheid fysiek geheugen van de pc heeft het wisselbestand in dit geval 50 tot 800 MB nodig, of een derde van het fysieke geheugen van de computer op het opstartvolume. Standaard wordt de kernelgeheugendump naar het bestand %SystemRoot%\Memory.dmp geschreven.

Deze dump omvat geen niet-toegewezen geheugen of geheugen dat is toegewezen aan programma's in de gebruikersmodus. Het omvat alleen geheugen dat is toegewezen aan de kernel en hardwarespecifieke laag (HAL) in Windows 2000 en hoger latere versies systeem, evenals geheugen dat is toegewezen voor stuurprogramma's in de kernelmodus en andere programma's in de kernelmodus. In de meeste gevallen is een dergelijke dump de optie die de meeste voorkeur verdient. Het neemt veel minder ruimte in beslag vergeleken met volledige puinhoop geheugen, terwijl alleen die geheugensectoren worden uitgesloten die hoogstwaarschijnlijk niet met de fout zijn geassocieerd.
Wanneer er een nieuwe fout optreedt en er een nieuw kernelgeheugendumpbestand wordt gemaakt, wordt het vorige bestand vervangen.

  • Kleine geheugendump schrijft het kleinste volume nuttige informatie nodig om de oorzaak van het probleem te achterhalen. Om een ​​kleine geheugendump te maken, moet de paginabestandsgrootte op het opstartvolume minimaal 2 MB zijn.

Kleine geheugendumpbestanden bevatten de volgende informatie:

  • Fatale foutmelding, de parameters en andere gegevens;
  • lijst met geladen stuurprogramma's;
  • de processorcontext (PRCB) waarop de fout heeft plaatsgevonden;
  • procesinformatie en kernelcontext (EPROCESS) voor het proces dat de fout veroorzaakte;
  • procesinformatie en kernelcontext (ETHREAD) voor de thread die de fout veroorzaakte;
  • De kernelmodusaanroepstack voor de thread die de fout heeft veroorzaakt.

Een klein geheugendumpbestand wordt gebruikt als de ruimte beperkt is harde schijf. Vanwege de beperkte informatie die het bevat, kan de analyse van dit bestand echter niet altijd fouten detecteren die niet rechtstreeks werden veroorzaakt door de thread die actief was toen de fout optrad.

Wanneer de volgende fout optreedt en er een tweede klein geheugendumpbestand wordt gemaakt, wordt het vorige bestand opgeslagen. Aan iedereen extra bestand er wordt een unieke naam gegeven. De datum is gecodeerd in de bestandsnaam. Mini051509-01.dmp is bijvoorbeeld het eerste geheugendumpbestand dat op 15 mei 2009 is gemaakt. In de map wordt een lijst met alle kleine geheugendumpbestanden opgeslagen. %SysteemRoot%\Minidump.

Het besturingssysteem Windows XP is ongetwijfeld veel betrouwbaarder eerdere versies, – dankzij de inspanningen van zowel Microsoft-ontwikkelaars als driver-ontwikkelaars hardware en applicatieontwikkelaars software. Noodsituaties - allerlei soorten storingen en systeemcrashes - zijn echter onvermijdelijk, en of de pc-gebruiker over de kennis en vaardigheden beschikt om deze te elimineren, hangt af van de vraag of hij een paar minuten zal moeten besteden aan het oplossen van problemen en het oplossen van problemen (bijvoorbeeld bijwerken/debuggen een stuurprogramma of opnieuw installeren applicatieprogramma, veroorzaken systeemfout), – of enkele uren om het besturingssysteem en de applicatiesoftware opnieuw te installeren/configureren (wat niet de afwezigheid van storingen en crashes in de toekomst garandeert!).

Veel systeembeheerders negeren nog steeds de analyse van Windows-crashdumps, omdat ze denken dat het te moeilijk is om ermee te werken. Het is moeilijk, maar het is mogelijk: zelfs als bijvoorbeeld de analyse van één op de tien dumps succesvol blijkt te zijn, zullen de inspanningen die zijn besteed aan het beheersen van de eenvoudigste technieken voor het analyseren van crashdumps niet tevergeefs zijn!

Ik zal voorbeelden geven uit mijn “sysadmin” praktijk.

IN lokaal netwerk zonder schijnbare reden(“hardware” is in orde, de afwezigheid van virussen is gegarandeerd, gebruikers hebben “normale handen”) verschillende werkstations met Windows XP SP1/SP2 “aan boord” werden gedood. Computers worden geladen normale modus Het werkte niet – het kwam op “Groeten” – en het opnieuw opstarten ging tot in het oneindige door. Tegelijkertijd startten de pc's op in de veilige modus.

De studie van geheugendumps maakte het mogelijk om de oorzaak van de storing te identificeren: de boosdoener bleek Kaspersky-antivirus te zijn, of beter gezegd, nieuwe antivirusdatabases(meer precies, twee databasemodules – base372c.avc, base032c.avc).

...Er was nog zo'n geval. Op een lokale pc met Windows XP SP3 vond een herstart plaats toen werd geprobeerd videobestanden in de formaten .avi en .mpeg te openen. Door de geheugendump te bestuderen, konden we de oorzaak van het probleem identificeren: het stuurprogrammabestand nv4_disp.dll NVIDIA-videokaarten GeForce 6600. Na het updaten van het stuurprogramma was het probleem opgelost. Over het algemeen is het stuurprogramma nv4_disp.dll een van de meest onstabiele stuurprogramma's, wat vaak tot BSOD leidde.

In beide gevallen maakte het bestuderen van de crashgeheugendump het mogelijk om de tijd voor het diagnosticeren en elimineren van de storing tot een minimum te beperken (enkele minuten!).

Analyse van geheugendumps

Er zijn veel programma's voor het analyseren van crashgeheugendumps, bijvoorbeeld DumpChk, Kanalyze, WinDbg.

Laten we eens kijken naar het analyseren van crashgeheugendumps met behulp van het WinDbg-programma (onderdeel van Debugging Tools voor Windows).

Foutopsporingstools installeren

  • bezoek de website van Microsoft Corporation http://www.microsoft.com/whdc/devtools/debugging/default.mspx;
  • download Debugging Tools voor Windows, voor een 32-bits versie van Windows kunt u dit bijvoorbeeld doen op de pagina Debugging Tools for Windows downloaden;
  • na het downloaden, uitvoeren installatiebestand;
  • klik in het venster Debugging Tools for Windows Setup Wizard op Volgende;
  • in het raam met licentieovereenkomst zet de schakelaar Ik ga akkoord -> Volgende;
  • in het volgende venster selecteert u het installatietype (standaard worden debugging tools geïnstalleerd in de map \Program Files\Debugging Tools for Windows) –> Volgende –> Installeren –> Voltooien;
  • Om geheugendumpbestanden te interpreteren, moet u ook de symboolpakketten voor uw versie van Windows downloaden. Ga naar de pagina Windows-symboolpakketten downloaden;
  • kies de jouwe Windows-versie, download het installatiebestand van Symbol Packages en voer het uit;
  • klik in het venster met de licentieovereenkomst op Ja;
  • selecteer in het volgende venster de installatiemap (de standaard is \WINDOWS\Symbols) –> OK –> Ja;
  • in het raam Microsoft Windows Bij symbolen met de melding “Installatie is voltooid” klikt u op OK.

WinDbg gebruiken om crashdumps te analyseren

  • voer WinDbg uit (standaard geïnstalleerd in de map \Program Files\Debugging Tools for Windows);
  • selecteer menu Bestand –> Symbool Bestandspad…;
  • klik in het venster Symbol Search Path op de knop Bladeren...;
  • geef in het venster Bladeren door map de locatie van de map Symbolen op (standaard – \WINDOWS\Symbols) –> OK –> OK;
  • selecteer menu Bestand -> Crashdump openen... (of druk op Ctrl + D);
  • geef in het venster Crash Dump openen de locatie op van het Crash Dump-bestand (*.dmp) -> Openen;
  • in het werkruimtevenster met de vraag “Opslaan informatie voor werkruimte?", vink het vakje Niet opnieuw vragen -> Nee aan;
  • Het Command Dump-venster wordt geopend in het WinDbg-venster<путь_и_имя_файла_дампа>met dumpanalyse;
  • de geheugendumpanalyse bekijken;
  • in de sectie “Bugcheck-analyse” wordt aangegeven mogelijke reden crash, bijvoorbeeld “Waarschijnlijk veroorzaakt door: smwdm.sys (smwdm+454d5)”;
  • bekijken gedetailleerde informatie klik op de link “!analyze -v” in de regel “Gebruik !analyze -v om gedetailleerde foutopsporingsinformatie te krijgen”;
  • sluit WinDbg;
  • Gebruik de verkregen informatie om de oorzaak van het probleem te elimineren.

In de volgende schermafbeelding is de oorzaak van de storing bijvoorbeeld het bestand nv4_disp.dll van het videokaartstuurprogramma.