Registrazione delle informazioni di debug per Windows 10, cosa installare. Come utilizzare un dump della memoria per determinare il driver che causa il BSOD. Configurazione di un server di simboli di debug in WinDBG

Ciao amici, oggi discuteremo un argomento interessante che vi aiuterà in futuro quando schermo blu morte (BSoD).

Come me, molti altri utenti hanno dovuto osservare l'apparizione di una schermata con lo sfondo blu su cui c'era scritto qualcosa (bianco su blu). Questo fenomeno indica un problema critico, come in Software, ad esempio, un conflitto di driver o un malfunzionamento fisico di alcuni componenti del computer.

Recentemente ho riscontrato di nuovo un problema con la schermata blu in Windows 10, ma me ne sono sbarazzato rapidamente e te ne parlerò presto.

Pertanto, la maggior parte degli utenti non è consapevole che BSoD può essere analizzato per comprendere successivamente i problemi di errore critici. Per tale Casi di Windows crea file speciali sul disco: li analizzeremo.

Esistono tre tipi di dump della memoria:

Dump della memoria completa– questa funzione permette di salvare completamente i contenuti memoria ad accesso casuale. Viene utilizzato raramente, perché immagina di avere 32 GB di RAM, con un dump completo, tutto questo volume verrà archiviato su disco.

Discarica del nucleo– salva le informazioni sulla modalità kernel.

Piccolo dump della memoria– salva una piccola quantità di informazioni sugli errori e sui componenti caricati che erano presenti al momento in cui si è verificato il malfunzionamento del sistema. Utilizzeremo questo tipo di dump perché ci fornirà informazioni sufficienti sul BSoD.

La posizione del dump piccolo e di quello completo è diversa, ad esempio il dump piccolo si trova nel seguente percorso: %systemroot%\minidump.

Il dump completo è qui: %systemroot%.

Per analizzare i dump della memoria, ci sono vari programmi, ma ne useremo due. Il primo è Microsoft Kernel Debuggers, come suggerisce il nome, un'utilità di Microsoft. Puoi scaricarlo dal sito ufficiale. Il secondo programma è BlueScreenView, un programma gratuito, scaricabile da qui.

Analisi di un dump della memoria utilizzando i debugger del kernel Microsoft

Per versioni diverse di sistemi è necessario scaricare un diverso tipo di utilità. Ad esempio, per 64 bit sistema operativo, è necessario un programma a 64 bit, per un programma a 32 bit - una versione a 32 bit.

Ma non è tutto, devi scaricare e installare il pacchetto di simboli di debug necessari per il programma. Si chiama Simboli di debug. Ogni versione di questo pacchetto viene anche scaricata con un sistema operativo specifico, scopri prima quale sistema hai e poi scarica. Per non dover cercare questi simboli da nessuna parte, ecco il link per il download. L'installazione dovrebbe preferibilmente essere eseguita in questo percorso: %systemroot%\symbols.

Ora puoi avviare il nostro debugger, la cui finestra sarà simile a questa:

Prima di analizzare i dump, configureremo qualcosa nell'utilità. Per prima cosa dobbiamo dire al programma dove abbiamo installato i simboli di debug. Per fare ciò, fare clic sul pulsante "File" e selezionare la voce "Percorso file simboli", quindi indicare il percorso dei simboli.


Il programma ti permette di estrarre i simboli direttamente dal web, così non devi nemmeno scaricarli (scusate chi li ha già scaricati). Verranno presi da un server Microsoft, quindi tutto è sicuro. Quindi, devi aprire nuovamente “File”, quindi “Percorso file simbolo” e inserire il seguente comando:

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


Pertanto, abbiamo indicato al programma che i simboli dovrebbero essere presi dalla rete. Una volta fatto ciò, fare clic su "File" e selezionare "Salva area di lavoro", quindi fare clic su OK.

È tutto. Abbiamo configurato il programma nel modo giusto, ora cominciamo ad analizzare i dump della memoria. Nel programma, premere il pulsante "File", Poi "Apri Crash Dump" e selezionare il file desiderato.

I debugger del kernel inizieranno ad analizzare il file e quindi restituiranno un risultato sulla causa dell'errore.


Nella finestra che appare, puoi inserire i comandi. Se entriamo !analizzare –v, quindi otterremo maggiori informazioni.

Questo è tutto con questo programma. Per interrompere il debugger, seleziona "Debug" e la voce "Interrompi debug".

Analisi di un dump della memoria utilizzando BlueScreenView

Il programma BlueScreenView è adatto anche per analizzare vari errori e BSoD, ha un'interfaccia semplice, quindi non dovrebbero esserci problemi con la sua padronanza.

Scarica il programma dal link sopra e installalo. Dopo aver avviato l'utilità, è necessario configurarla. Vai ai parametri: “Impostazioni” – “ Opzioni aggiuntive" Si aprirà una piccola finestra con un paio di elementi. Nel primo paragrafo è necessario indicare la posizione dei dump della memoria. Di solito si trovano nel percorso C:\WINDOWS\Minidump. Quindi basta fare clic sul pulsante "Predefinito".


Cosa puoi vedere nel programma? Abbiamo voci di menu, una parte della finestra con i nomi dei file di dump e la seconda parte della finestra: il contenuto dei dump della memoria.


Come ho detto all'inizio dell'articolo, i dump possono memorizzare i driver, lo screenshot della stessa "schermata della morte" e altre informazioni utili che potrebbero esserci utili.

Quindi, nella prima parte della finestra, dove si trovano i file di dump, seleziona il dump della memoria di cui abbiamo bisogno. Nella parte successiva della finestra guardiamo il contenuto. I driver situati nello stack di memoria sono contrassegnati in colore rossastro. Sono proprio loro la causa della schermata blu della morte.

Su Internet puoi trovare tutto sul codice di errore e sul driver che potrebbe essere la causa di BSoD. Per fare ciò, fare clic su "File", quindi "Trova codice errore + driver in Google".


È possibile visualizzare solo i driver presenti al momento in cui si è verificato l'errore. Per fare ciò, fai clic su “Impostazioni” – “Modalità finestra in basso” – “Solo i driver trovati nello stack di arresti anomali”. Oppure premi il tasto F7.

Per mostrare lo screenshot di BSoD, premi F8.

Per mostrare tutti i driver e i file, premere F6.

Bene, questo è tutto. Ora sai come scoprire il problema Blue Screen of Death e, se succede qualcosa, trova una soluzione su Internet o su questo sito. Puoi offrire i tuoi codici di errore e cercherò di scrivere per ogni articolo per risolvere il problema.

Inoltre, non dimenticare di porre domande nei commenti.

Continuerò a parlare della schermata blu della morte, da cui ho iniziato.

Pertanto, se il computer si riavvia o si blocca improvvisamente e la schermata blu della morte non appare o appare per una frazione di secondo, è ancora possibile ripristinare le informazioni sulle cause dell'errore.

Il fatto è che il sistema operativo al momento del guasto salva il contenuto della RAM nel cosiddetto File spazzatura(ha estensione .dmp). In futuro, il file dump potrà essere analizzato e ottenere le stesse informazioni della schermata blu e anche qualcosa in più.

Ma la creazione di dump può essere disabilitata nel sistema, quindi dovresti assicurarti che, in primo luogo, il sistema crei dump quando si blocca e, in secondo luogo, dovresti conoscere la posizione sul disco in cui vengono salvati.

Per fare questo è necessario andare alla sezione Sistema.

In Windows 10 questo può essere fatto tramite la ricerca e in versione precedente sistema operativo tramite il Pannello di controllo.

Qui la registrazione degli eventi nel registro di sistema dovrebbe essere abilitata, ma per evitare che il computer si riavvii automaticamente e ci mostri il contenuto della schermata blu della morte, è necessario annullare il riavvio automatico se era abilitato.

Qui viene visualizzato anche il percorso dei dump: vediamo che il dump è salvato nella cartella %SystemRoot%: questa è la designazione della cartella Windows.

Puoi anche selezionare "piccolo dump della memoria" qui, che sarà abbastanza per cercare i codici di errore.

Quindi, il sistema si è schiantato nella schermata blu della morte, dopo di che è stato creato un dump della memoria.

Per l'analisi dei dump ci sono programmi speciali e una delle più popolari è l'utilità BlueScreenView.

Il programma è molto facile da usare e non richiede installazione: scaricalo dal sito ufficiale e decomprimilo. Allo stesso tempo, dal sito ufficiale puoi scaricare un file con il quale puoi russificare il programma. Per questo questa vita dovrai inserirlo nella cartella con il programma decompresso.

Se, dopo aver avviato il programma, i dump non vengono visualizzati, anche se il sistema si è bloccato nella schermata blu della morte, dovresti andare alle impostazioni del programma e assicurarti che il percorso dei dump della memoria sia specificato correttamente, cioè dovrebbe essere lo stesso delle impostazioni di sistema.

Successivamente, è necessario aggiornare le informazioni nella finestra del programma e verranno visualizzati tutti i dump creati nel sistema. Se ci sono più discariche, ci concentriamo sulla data del fallimento. Seleziona il dump desiderato, quindi apparirà informazioni dettagliate su di essa.

Qui viene visualizzato il nome dell'errore, il suo codice STOP con i parametri e, se la causa era il driver, nel campo corrispondente troveremo il suo nome.

Inoltre, nella parte inferiore della finestra del programma, i file che potrebbero causare l'errore verranno evidenziati in rosa. Dovremo affrontarli in ordine. L'algoritmo qui è simile a quello discusso nel post precedente: cerchiamo una soluzione su Internet e utilizziamo il nome del file o il codice di errore come chiave di ricerca.

In questo caso non è necessario inserire manualmente i dati nel motore di ricerca. Se fai clic con il pulsante destro del mouse sulla riga di dump, quindi da menù contestuale Puoi selezionare una voce che ti permetterà di trovare una descrizione di questo particolare problema su Google.

Puoi scegliere di cercare su Google per codice di errore, per codice di errore e nome del driver oppure per codice di errore e parametro.

Inoltre, utilizzando questa utility, puoi trovare rapidamente la posizione del file problematico sul disco.

A volte capita che il file che ha causato il problema appartenga a qualche programma o gioco. Dalla posizione del file sul disco, puoi determinare rapidamente a quale programma o gioco appartiene.

Bene, vale la pena sapere che i pulitori sembrano eliminare i dump della memoria, quindi se usi tali programmi, dovresti astenervi dall'usarli mentre identifichi la causa della schermata blu della morte.

E l'ultima domanda a cui risponderò come parte di questa nota è cosa fare se dopo la comparsa della schermata blu il computer non si avvia più? Cioè, il computer si blocca o è costantemente sovraccaricato, il che significa che non è possibile analizzare il dump della memoria.

La risposta è logica e semplice: devi creare unità flash USB avviabile, con il quale è possibile “estrarre” il file dump da disco rigido e analizzarlo su un altro computer. Per fare ciò, avvia da un'unità flash e sul disco rigido del computer nella cartella finestre o in una sottocartella minidump Troviamo il file dump, che copiamo sull'unità flash. Quindi su un altro computer utilizzando l'utilità BlueScreenView Analizziamo la discarica, come descritto in questa nota.

In Windows 8, Microsoft ha introdotto un nuovo dump della memoria: un'opzione di dump della memoria automatica. Questa impostazione è impostata per impostazione predefinita nel sistema operativo. Windows 10 ha introdotto un nuovo tipo di file di dump: dump della memoria attiva. Per chi non lo sapesse, in Windows 7 abbiamo small dump, core dump e full core dump. Forse ti starai chiedendo perché Microsoft ha deciso di crearlo nuovo parametro discarica della memoria? Secondo Robert Simpkins, ingegnere senior del supporto, un dump automatico della memoria può creare supporto per la pagina "sistema" nel file di configurazione.
Il sistema di gestione della configurazione del file di paging è responsabile della gestione delle dimensioni del file di paging, in modo da evitare headroom o dimensioni del file di paging non necessari. Questa opzione viene introdotta principalmente per i PC che utilizzano unità SSD, che tendono ad essere di dimensioni più piccole ma hanno un'enorme quantità di RAM.

Opzioni di dump della memoria

Il vantaggio principale di "Dump automatico della memoria" è che consentirà alla sessione del sottosistema nel gestore del processo di ridurre automaticamente il file di paging a una dimensione inferiore alla dimensione della RAM. Per coloro che non lo sanno, la sessione del gestore del sottosistema è responsabile dell'inizializzazione del sistema, l'ambiente di avvio per i servizi e i processi necessari affinché l'utente possa accedere al sistema. Fondamentalmente imposta la pagina dei file su memoria virtuale e avvia il processo winlogon.exe.

Se desideri modificare le impostazioni del dump automatico della memoria, ecco come farlo. Premi il tasto Windows + X e seleziona - Sistema. Successivamente, fare clic sul pulsante “Impostazioni di sistema avanzate - Avanzare Sistema Impostazioni”.

Fare clic sul pulsante Impostazioni di sistema avanzate.

Qui puoi vedere un menu a discesa dove dice "Avanzate".

Qui puoi selezionare l'opzione che desideri. Opzioni suggerite:

Nessun dump della memoria.
Piccolo dump della memoria.
Dump della memoria del kernel.
Completamento del dump della memoria.
Dump automatico della memoria. Aggiunto a Windows 8.
Dump della memoria attivo. Aggiunto a Windows 10.
Il percorso del file di immagine della memoria è nel file %SystemRoot%\MEMORY.DMP.

Se stai usando Unità SSD, allora è meglio lasciarlo su “Dump automatico della memoria”; ma se hai bisogno di un file di crash dump, allora è meglio impostarlo su “small memory dump”, con esso puoi, se vuoi, inviarlo a qualcuno in modo che possa dargli un'occhiata.

In alcuni casi, potrebbe essere necessario aumentare la dimensione del file di paging più grande della RAM in modo che possa contenere un dump della memoria completo. In questi casi, è necessario creare una chiave di registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

si chiama "LastCrashTime".

Ciò aumenterà automaticamente la dimensione del file di scambio. Per ridurlo in seguito, puoi semplicemente rimuovere questa chiave.

In Windows 10 introdotto nuovo file dump dump della memoria attiva. Contiene solo l'essenziale ed è quindi di dimensioni più ridotte.

Non ho modo di testarlo, ma ho creato questa chiave e ho monitorato la dimensione del file di paging. So che prima o poi riceverò un errore critico. Poi lo controllerò.

Puoi analizzare il dump della memoria dei file Windows.dmp utilizzando WhoCrashed. WhoCrashed Home è un'utilità gratuita che fornisce i driver che sono stati installati sul tuo computer con un clic. Nella maggior parte dei casi, è in grado di identificare un driver difettoso che causa problemi al computer. Si tratta di un crash dump dell'analisi del sistema, dump della memoria e tutte le informazioni raccolte sono presentate qui in una forma accessibile.

In genere, il toolkit di debug aprirà un dump di arresto anomalo del sistema di analisi. Con questa utility, non hai bisogno di alcuna conoscenza o capacità di debug per scoprire quali driver causano problemi sul tuo computer.

WhoCrashed si basa su un pacchetto di debug (il programma windbg) di Microsoft. Se questo pacchetto non è installato, WhoCrashed scaricherà ed estrarrà automaticamente questo pacchetto per te. Basta eseguire il programma e fare clic sul pulsante Analizza. Quando hai WhoCrashed installato sul tuo sistema e se si blocca o si chiude inaspettatamente, il programma ti farà sapere se il crash dumping è abilitato sul tuo computer e ti offrirà suggerimenti su come abilitarli.

Questa breve nota ha lo scopo di mostrare come è possibile configurare il sistema per far fronte ad una emergenza Dump della memoria di Windows, ovvero un dump che può essere creato nel caso si verifichi un guasto critico, caratterizzato dalla comparsa di una schermata blu di morte (BSOD). Cos'è una discarica in generale, perché ne abbiamo bisogno e cos'è, quali problemi intende risolvere e quali informazioni contiene?

Dump della memoria: il contenuto della memoria di lavoro di un processo, kernel o intero sistema operativo, incluse, oltre alle aree di lavoro, Informazioni aggiuntive sullo stato dei registri del processore, sul contenuto dello stack e su altre strutture di servizio.

Perché potremmo aver bisogno di questo contenuto, ad es. Dump della memoria di Windows? Forse l'uso più comune di un dump della memoria è studiare le cause di un errore di sistema (), che ha causato l'arresto completo del sistema operativo. Oltre a ciò, lo stato della memoria può essere utilizzato per altri scopi. È anche importante che un dump della memoria sia letteralmente l'unico modo ricevere informazioni su eventuali guasti! E prendere (ottenere) un dump della memoria di sistema è, in effetti, l'unico metodo accurato per ottenere un'impronta digitale istantanea (copia) del contenuto della memoria fisica del sistema.

Quanto più accuratamente il contenuto del dump riflette lo stato della memoria al momento del guasto, tanto più dettagliatamente saremo in grado di analizzare la situazione di emergenza. Pertanto, è estremamente importante ottenere una copia aggiornata della memoria fisica del sistema in un momento strettamente definito, immediatamente precedente al guasto. E l'unico modo per farlo è creare un crash dump completo. Il motivo è abbastanza banale: quando si verifica un crash dump della memoria di sistema, a causa di un guasto o di una situazione simulata artificialmente, il sistema in questo momento in cui riceve il controllo delle funzioni di emergenza (KeBugCheckEx) è in uno stato stato assolutamente invariato (statico), quindi, tra il momento in cui si verifica l'errore e il momento in cui i dati vengono scritti sul supporto, nulla cambia il contenuto della memoria fisica e viene scritta sul disco nel suo stato originale. Bene, questo è in teoria, ma occasionalmente nella vita, ma ci sono situazioni in cui, a causa di componenti hardware difettosi, il dump della memoria stesso potrebbe essere danneggiato o la stazione potrebbe bloccarsi durante la registrazione del dump.

Nella stragrande maggioranza dei casi, dal momento in cui inizia il processo di creazione di un dump della memoria di arresto anomalo fino alla fine della scrittura del contenuto della memoria su disco, le informazioni in memoria rimangono invariate.

Teoricamente, la staticità (immutabilità) dell'"impronta digitale" della memoria è spiegata dal fatto che quando viene richiamata la funzione KeBugCheckEx, che visualizza informazioni sull'errore e avvia il processo di creazione di un dump della memoria, il sistema è già completamente arrestato e il il contenuto della memoria fisica viene scritto nei blocchi occupati sul disco dal file di paging, dopodiché, durante il successivo caricamento del sistema operativo, viene reimpostato in un file sul supporto di sistema. Bene, quasi una volta ho osservato una situazione in cui un difettoso scheda madre mi ha impedito di salvare un dump della memoria: a) blocco mentre era in esecuzione la logica di salvataggio del dump (il processo non ha raggiunto il 100%), b) danneggiamento del file di dump della memoria (il debugger si è lamentato delle strutture), c) scrittura del dump di memory.dmp file di lunghezza zero. Pertanto, nonostante il fatto che il sistema sia già completamente arrestato nel momento in cui viene creato il dump della memoria e sia in esecuzione solo il codice di emergenza, l'hardware difettoso può apportare modifiche a qualsiasi logica senza eccezioni in qualsiasi fase dell'operazione.
Tradizionalmente, nella fase iniziale, i blocchi del disco allocati al file di paging vengono utilizzati per salvare un'immagine della memoria di Windows. Quindi, dopo una schermata blu e un riavvio, i dati vengono spostati in un file separato, quindi il file viene rinominato utilizzando un modello a seconda del tipo di dump. Tuttavia, a partire da Versioni di Windows Vista, questo stato di cose può essere modificato; ora all'utente viene data la possibilità di salvare un dump selezionato senza la partecipazione di un file di scambio, inserendo le informazioni sull'errore in un file temporaneo. Ciò è stato fatto al fine di eliminare gli errori di configurazione associati a impostazioni errate della dimensione e della posizione del file di paging, che spesso portavano a problemi durante il processo di salvataggio di un dump della memoria.
Vediamo quali tipologie di dump il sistema operativo Windows ci permette di creare:

  • Dump della memoria del processo (applicazione);
  • Dump della memoria del kernel;
  • Dump della memoria completa (dump della parte disponibile della memoria fisica del sistema).

Tutti i crash dump possono essere suddivisi in due categorie principali:

  • Dump degli arresti anomali con informazioni sull'eccezione che si è verificata. Di solito creato in Modalità automatica, quando si verifica un'eccezione non gestita nell'applicazione/kernel e, di conseguenza, è possibile chiamare il debugger (incorporato) del sistema. In questo caso, le informazioni sull'eccezione vengono registrate in un dump, il che rende più semplice determinare il tipo di eccezione e il luogo in cui si è verificata durante l'analisi successiva.
  • Dump degli arresti anomali senza informazioni sulle eccezioni. Tipicamente creato manualmente dall'utente quando è necessario creare semplicemente uno snapshot di un processo per la successiva analisi. Questa analisi non implica la determinazione del tipo di eccezione, poiché non si è verificata alcuna eccezione, ma un'analisi di tipo completamente diverso, ad esempio studiando le strutture dati di un processo e così via.

Configurazione del dump della memoria del kernel

Devi essere loggato in amministrativo account per eseguire i passaggi descritti in questa sezione.

Passiamo direttamente alla configurazione delle impostazioni del dump di arresto anomalo del sistema di Windows. Innanzitutto, dobbiamo andare alla finestra delle proprietà del sistema in uno dei seguenti modi:

  1. Fare clic con il tasto destro sull'icona "Risorse del computer" - "Proprietà" - "Impostazioni di sistema avanzate" - "Avanzate".
  2. Pulsante "Start" - "Pannello di controllo" - "Sistema" - "Impostazioni di sistema avanzate" - "Avanzate".
  3. Scorciatoia da tastiera "Windows" + "Pausa" - "Impostazioni di sistema avanzate" - "Avanzate".

  4. sistema di controllo.cpl,3
  5. Esegui dentro riga di comando(cmd):
    ProprietàdisistemaAvanzate

Il risultato delle azioni descritte è aprire la finestra "Proprietà del sistema" e selezionare la scheda "Avanzate":

Successivamente, nella sezione "Avvio e ripristino" facciamo clic, selezioniamo "Opzioni" e quindi apriamo una nuova finestra denominata "Download e ripristino":

Tutti i parametri del dump del crash sono raggruppati in un blocco di parametri chiamato "Errore di sistema". In questo blocco possiamo impostare i seguenti parametri:

  1. Scrivere eventi nel registro di sistema.
  2. Eseguire un riavvio automatico.
  3. Registrazione delle informazioni di debug.
  4. File spazzatura.
  5. Sostituisci un file di dump esistente.

Come puoi vedere, molti dei parametri dell'elenco sono piuttosto banali e facili da capire. Vorrei però approfondire il parametro "Dump File". Il parametro viene presentato come un elenco a discesa e ha quattro valori possibili:

Piccolo dump della memoria

Un piccolo dump della memoria (minidump) è un file che contiene la quantità minima di informazioni sull'errore. Il più piccolo di tutti i possibili dump della memoria. Nonostante gli ovvi svantaggi, i minidump vengono spesso utilizzati come informazioni su un mancato trasferimento a fornitori di driver di terze parti per studi successivi.
Composto:

  • Messaggio di errore.
  • Valore di errore.
  • Parametri di errore.
  • Il contesto del processore (PRCB) in cui si è verificato l'errore.
  • Informazioni sul processo e contesto del kernel (EPROCESS) per il processo in crash e tutti i suoi thread.
  • Informazioni sul processo e contesto del kernel (ETHREAD) per il thread che causa l'arresto anomalo.
  • Lo stack in modalità kernel per il thread che ha causato l'arresto anomalo.
  • Elenco dei driver caricati.

Alloggio: %SystemRoot%\Minidump\MMGGAA-XXXXX-NN.dmp. Dove MMGGAA è rispettivamente il mese, il giorno e l'anno, NN è il numero di serie del dump.
Volume: la dimensione dipende dal numero di bit del sistema operativo: sono necessari solo 128 kilobyte per un sistema operativo a 32 bit e 256 kilobyte per un sistema operativo a 64 bit nel file di paging (o nel file specificato in DedicatedDumpFile). Poiché non possiamo impostare una dimensione così piccola, la arrotondiamo a 1 megabyte.

Dump della memoria del kernel

Questo tipo di dump contiene una copia di tutta la memoria del kernel al momento del crash.
Composto:

  • Elenco dei processi in esecuzione.
  • Stato del thread corrente.
  • Pagine di memoria in modalità kernel presenti nella memoria fisica al momento dell'arresto anomalo: memoria del driver in modalità kernel e memoria del programma in modalità kernel.
  • Memoria di livello dipendente dall'hardware (HAL).
  • Elenco dei driver caricati.

Nel dump della memoria del kernel mancano le pagine di memoria non allocata e le pagine in modalità utente. D'accordo, è improbabile che le pagine di processo in modalità utente ci interessino durante un errore di sistema (BugCheck), poiché l'errore di sistema viene solitamente avviato dal codice in modalità kernel.

Dimensione: varia a seconda della dimensione dello spazio degli indirizzi del kernel allocato dal sistema operativo e dal numero di driver in modalità kernel. In genere, circa un terzo della memoria fisica è richiesto nel file di scambio (o nel file specificato in DedicatedDumpFile). Può variare.

Completamento del dump della memoria

Un dump della memoria completo contiene una copia di tutta la memoria fisica (RAM) al momento dell'errore. Di conseguenza nel file viene contenuto l'intero contenuto della memoria di sistema. Questo è sia un vantaggio che un grosso svantaggio, poiché le sue dimensioni possono essere significative su alcuni server con grandi quantità di RAM.
Composto:

  • Tutte le pagine di memoria fisica "visibile". Si tratta di quasi tutta la memoria di sistema, ad eccezione delle aree utilizzate dall'hardware: BIOS, spazio PCI, ecc.
  • Dati dei processi in esecuzione sul sistema al momento dell'errore.
  • Pagine di memoria fisica che non sono mappate allo spazio degli indirizzi virtuali, ma che possono aiutare a indagare sulla causa dell'errore.

Per impostazione predefinita, un dump completo della memoria non include le aree di memoria fisica utilizzate dal BIOS.
Posizione: %SystemRoot%\MEMORY.DMP . Il dump precedente viene sovrascritto.
Volume: il file di paging (o il file specificato in DedicatedDumpFile) richiede un volume pari alla dimensione della memoria fisica + 257 megabyte (questi 257 MB sono divisi in una determinata intestazione + dati del driver). In alcuni sistemi operativi, infatti, la soglia inferiore del file di paging può essere impostata esattamente sul valore della dimensione della memoria fisica.

Dump automatico della memoria

A partire da Windows 8/Windows Server 2012, nel sistema è stato introdotto un nuovo tipo di dump denominato Automatic Memory Dump, impostato come tipo predefinito. In questo caso è il sistema stesso a decidere quale dump della memoria registrare in caso di un particolare guasto. Inoltre, la logica della scelta dipende da molti criteri, inclusa la frequenza del “crash” del sistema operativo.

Dopo aver modificato la configurazione del dump della memoria di Windows, potrebbe essere necessario riavviare il computer.

Impostazioni del registro

La sezione del registro che definisce i parametri del dump del crash:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Opzioni:

Parametro Tipo Descrizione
Riavvio automatico REG_DWORD Abilita/disabilita il riavvio automatico quando si verifica BSOD.
CrashDumpEnabled REG_DWORD Il tipo di dump creato.
  • 0: non crea un dump della memoria;
  • 1 - dump completo della memoria;
  • 2 - dump della memoria del kernel;
  • 3 - piccolo dump della memoria;
File spazzatura REG_EXPAND_SZ Percorso e nome del dump della memoria del kernel e del dump della memoria completa.
DumpFilters REG_MULTI_SZ Filtro driver nello stack di driver del dump della memoria. Consente di aggiungere nuove funzionalità nella fase di creazione dei dump di arresto anomalo. Ad esempio, crittografando il contenuto del dump. Non è consigliabile modificare il valore.
LogEvent REG_DWORD Registrazione di un evento nel registro di sistema.
MinidumpDir REG_EZPAND_SZ Percorso e nome del piccolo dump della memoria.
Conteggio minidump REG_DWORD Numero massimo di piccoli dump della memoria. Una volta superato, le versioni precedenti iniziano a essere sovrascritte.
Sovrascrivi REG_DWORD Sostituisci un file di dump esistente. Solo per il dump della memoria del kernel e il dump della memoria completa.
Ignora dimensione file di pagina REG_DWORD Ignora il file di paging standard come posizione per l'archiviazione temporanea (intermedia) del dump della memoria. Indica che il dump della memoria deve essere scritto in un file separato. Utilizzato insieme all'opzione DedicatedDumpFile.
File Dump dedicato REG_EZPAND_SZ Percorso e nome di un file alternativo temporaneo per la registrazione di un dump della memoria. Nel secondo passaggio i dati verranno comunque spostati in DumpFile/MinidumpDir.

Creazione manuale di un dump della memoria

Sopra abbiamo descritto le impostazioni per la creazione automatica dei dump di arresto anomalo del sistema in caso di errore critico, ovvero un'eccezione non gestita nel codice del kernel. Ma in vita reale, oltre al crash del sistema operativo, ci sono situazioni in cui è necessario ottenere un dump della memoria del sistema in un momento specifico. Come comportarsi in questo caso? Esistono metodi per ottenere un'istantanea di tutta la memoria fisica, ad esempio utilizzando il comando .dump nei debugger WinDbg/LiveKD. LiveKD è un programma che ti permette di eseguire il debugger del kernel Kd su un sistema in esecuzione in modalità locale. Anche il debugger WinDbg ha una funzionalità simile. Tuttavia, il metodo del dump al volo non è accurato perché il dump generato in questo caso è "incoerente" poiché richiede tempo per generare il dump e, in caso di utilizzo del debugger in modalità kernel, il sistema continua a funzionare e creare modifiche alle pagine di memoria.

Tutti i sistemi Windows, quando viene rilevato un errore fatale, effettuano un crash dump (istantanea) del contenuto della RAM e lo salvano su HDD. Esistono tre tipi di dump della memoria:

Dump della memoria completa: salva l'intero contenuto della RAM. La dimensione dell'immagine è uguale alla dimensione della RAM + 1 MB (intestazione). Utilizzato molto raramente, poiché su sistemi con grandi quantità di memoria la dimensione del dump sarà troppo grande.

Dump della memoria del kernel: salva le informazioni sulla RAM relative solo alla modalità kernel. Le informazioni sulla modalità utente non vengono salvate perché non contengono informazioni sulla causa dell'arresto anomalo del sistema. La dimensione del file dump dipende dalla dimensione della RAM e varia da 50 MB (per sistemi con 128 MB di RAM) a 800 MB (per sistemi con 8 GB di RAM).

Piccolo dump della memoria (mini dump): contiene una quantità piuttosto ridotta di informazioni: un codice di errore con parametri, un elenco di driver caricati nella RAM al momento dell'arresto anomalo del sistema, ecc., Ma queste informazioni sono sufficienti per identificare il driver difettoso . Un altro vantaggio di questo tipo di dump è la dimensione ridotta del file.

Configurazione del sistema

Per identificare il driver che l'ha causato ci basterà utilizzare un piccolo dump della memoria. Affinché il sistema possa salvare un mini dump durante un arresto anomalo, è necessario eseguire i seguenti passaggi:

Per Windows XP Per Windows7
  1. Il mio computer Proprietà
  2. Vai alla scheda Inoltre;
  3. Opzioni;
  4. Nel campo Scrittura delle informazioni di debug scegliere Piccolo dump della memoria (64 KB).
  1. Fare clic con il tasto destro sull'icona Computer dal menu contestuale selezionare Proprietà(o la combinazione di tasti Win+Pausa);
  2. Nel menu a sinistra, fare clic sulla voce Impostazioni avanzate di sistema;
  3. Vai alla scheda Inoltre;
  4. Nel campo Download e ripristino è necessario fare clic sul pulsante Opzioni;
  5. Nel campo Scrittura delle informazioni di debug scegliere Piccolo dump della memoria (128 KB).

Dopo aver completato tutte le manipolazioni, dopo ogni BSoD un file con estensione .dmp verrà salvato nella cartella C:\WINDOWS\Minidump. Ti consiglio di leggere il materiale "". Puoi anche selezionare la casella " Sostituisci il file dump esistente" In questo caso, ogni nuovo crash dump verrà sovrascritto su quello vecchio. Non consiglio di abilitare questa opzione.

Analisi di un crash dump utilizzando BlueScreenView

Pertanto, dopo la comparsa della schermata blu della morte, il sistema ha salvato un nuovo dump della memoria di arresto anomalo. Per analizzare il dump, consiglio di utilizzare il programma BlueScreenView. Può essere scaricato gratuitamente. Il programma è abbastanza comodo e ha un'interfaccia intuitiva. Dopo averlo installato, la prima cosa che devi fare è specificare la posizione in cui archiviare i dump della memoria sul sistema. Per fare ciò, vai alla voce di menu “ Opzioni" e seleziona " AvanzateOpzioni" Selezionare il pulsante di opzione " CaricodaILseguenteMinidiscaricacartella" e specificare la cartella in cui sono archiviati i dump. Se i file sono archiviati nella cartella C:\WINDOWS\Minidump, è possibile fare clic sul pulsante " Predefinito" Fare clic su OK e accedere all'interfaccia del programma.

Il programma è composto da tre blocchi principali:

  1. Blocco menu principale e pannello di controllo;
  2. Blocco dell'elenco dei dump degli arresti anomali;
  3. A seconda dei parametri selezionati, può contenere:
  • un elenco di tutti i driver nella RAM prima che appaia la schermata blu (per impostazione predefinita);
  • un elenco di driver situati nello stack RAM;
  • Schermata BSoD;
  • e altri valori che non utilizzeremo.

Nel blocco elenco dump della memoria (contrassegnato con il numero 2 in figura), selezioniamo il dump che ci interessa e guardiamo l'elenco dei driver che sono stati caricati in RAM (contrassegnati con il numero 3 in figura). I driver presenti nello stack di memoria sono colorati in rosa. Sono la causa di BSoD. Successivamente, vai al menu principale del driver, determina a quale dispositivo o programma appartengono. Prima di tutto, presta attenzione file di sistema, perché i file di sistema vengono comunque caricati nella RAM. È facile vedere che il driver difettoso nell'immagine è myfault.sys. Dirò che questo programma è stato lanciato appositamente per causare un errore di interruzione. Dopo aver identificato il driver difettoso, è necessario aggiornarlo o rimuoverlo dal sistema.

Affinché il programma possa mostrare un elenco di driver situati nello stack di memoria quando si verifica un BSoD, è necessario andare alla voce di menu " Opzioni“clicca sul menù” InferiorePannelloModalità" e seleziona " SoltantoAutistiTrovatoInPila" (o premere il tasto F7) e per mostrare uno screenshot dell'errore, selezionare " BluSchermoInXPStile" (F8). Per tornare all'elenco di tutti i conducenti è necessario selezionare “ TuttoAutisti" (F6).




Superiore