DTrace Live Dump
DTrace offre una funzionalità per acquisire dump in tempo reale dall'interno dello script D usando lkd(). I file di dump della memoria vengono usati per il debug di problemi complessi in Windows tramite il debugger di Windows. Per altre informazioni, vedere Analizzare i file di dump di arresto anomalo del sistema tramite WinDbg. Per scaricare il debugger, vedere Scaricare e installare il debugger Windows WinDbg.
Il dump live di DTrace consente di attivare il dump nel punto esatto in cui si è verificato l'errore. Ad esempio, l'errore potrebbe essere una funzione che restituisce un errore. È possibile usare DTrace per associare questa funzione e attivare un dump attivo quando il valore restituito è "error".
Nota
DTrace è supportato nelle build Insider di Windows dopo la versione 18980 e Windows Server Build 18975.
Per informazioni generali sull'uso di DTrace in Windows, vedere DTrace.
Utilizzo del dump live di DTrace
Utilizzo: lkd (parametro);
Le opzioni seguenti possono essere impostate per modificare le informazioni incluse nel dump live mini.
0x0 - Dump completo del kernel (valore predefinito)
0x1 - Pagine utente e pagine kernel (funziona solo con il collegamento KD)
0x2 - Minidump
0x4 - Pagine Hyper-V e pagine kernel)
0x5: pagine utente, kernel e hypervisor.
Codice di esempio di dump live
#pragma D option destructive
inline uint32_t STATUS_UNSUCCESSFUL = 0xc0000001UL;
syscall:::return
{
this->status = (uint32_t)arg0;
if (this->status == STATUS_UNSUCCESSFUL)
{
printf ("Return value arg0:%x \n", this->status);
printf ("Triggering LiveDump \n");
lkd(0);
exit(0);
}
}
Salvare il file come livedumpstatuscheck.d.
Aprire un prompt dei comandi come amministratore ed eseguire lo script usando l'opzione -s.
C:\Windows\System32>dtrace -s livedumpstatuscheck.d
dtrace: script 'livedumpstatuscheck.d' matched 1881 probes
dtrace: allowing destructive actions
CPU ID FUNCTION:NAME
0 93 NtAlpcSendWaitReceivePort:return Return value arg0:c0000001
Triggering LiveDump
Il file di dump creato si trova in genere in C:\Windows\LiveKernelReports
.
Se il percorso del file dump è stato modificato, il valore viene archiviato in questa chiave del Registro di sistema: hklm\system\currentcontrolset\control\crashcontrol\livekernelreports
Usare WinDbg per usare un file di dump come descritto in precedenza.
Risoluzione dei problemi
Visualizzazione degli eventi correlati al dump live
Aprire windows Visualizzatore eventi: Vai a: Registri applicazioni e servizi-Microsoft-Windows-Kernel-Livedump-Operational>>>>
Se non sono stati trovato log, abilitare il canale analitico dal prompt dei comandi o dal visualizzatore eventi, come descritto di seguito.
Abilitare il canale analitico dal prompt dei comandi
Usare questo comando per abilitare il canale analitico dal prompt dei comandi e amministratore.
wevtutil sl Microsoft-Windows-Kernel-LiveDump/Analytic /e:true
Abilitare il canale analitico usando Visualizzatore eventi
Avviare Windows Visualizzatore eventi
Fare clic su Visualizza e selezionare "Mostra log analitici e di debug". Verrà visualizzato il canale analitico per livedump.
Fare clic con il pulsante destro del mouse su e abilitare Microsoft-Windows-Kernel-LiveDump/Analytics.
Abilitazione di dump in tempo reale completi
Queste impostazioni di esempio riportate di seguito mostrano l'impostazione del numero massimo di dump in tempo reale completi che possono trovarsi su disco in qualsiasi momento su 10 e archivia i dump di memoria completi, non solo un mini dump.
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v FullLiveReportsMax /d 10
reg add "HKLM\System\CurrentControlSet\Control\CrashControl" /f /t REG_DWORD /v AlwaysKeepMemoryDump /d 1
Per altre informazioni su queste impostazioni, vedere WeR Settings.For more information on these settings, see WER Settings.
Disabilitare la limitazione
La limitazione è una funzionalità che impedisce ai dump e al sistema di registrazione di influire sull'uso normale di Windows. Questa funzionalità può interferire con la creazione di dump in tempo reale in determinati ambienti vincolati alle risorse.
Controllare le impostazioni della limitazione dei dump in tempo reale e, se necessario, riprovare disabilitando la limitazione impostando SystemThrottleThreshold e ComponentThrottleThreshold chiavi su zero, come illustrato qui.
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v SystemThrottleThreshold /d 0
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v ComponentThrottleThreshold /d 0
Problemi di spazio su disco (ID evento 202 -Error Text: Live Dump Write Deferred Dump Data API terminata. Stato NT: 0xC000007F.)
Ciò significa che lo spazio su disco non è sufficiente. Aggiornare la chiave del Registro di sistema illustrata di seguito per modificare il percorso per la creazione di dump in tempo reale, in questo esempio in un'unità d: con spazio di archiviazione aggiuntivo disponibile.
reg add hklm\system\currentcontrolset\control\crashcontrol\livekernelreports /v "LiveKernelReportsPath" /t reg_sz /d "\??\d:\livedumps"
Questo comando imposta il percorso radice del dump attivo su d:\livedumps
(ad esempio).
Non creare manualmente la cartella perché è gestita dal sistema operativo e verrà creata quando il dump viene attivato con le autorizzazioni appropriate.