Condividi tramite


Indicazioni sulla risoluzione dei problemi relativi al comportamento di arresto anomalo dell'applicazione o del servizio

Questo articolo fornisce indicazioni su come risolvere i problemi relativi ai comportamenti di arresto anomalo dell'applicazione o del servizio.

Si applica a: tutte le versioni supportate di Windows Server e Client Windows

Quando viene visualizzato ripetutamente l'ID evento 1001 e l'ID evento 1000 nel log applicazioni, indica un comportamento di arresto anomalo dell'applicazione. Si verifica insieme a processi di prima o terze parti e punta a un possibile modulo di errore.

Questo articolo illustra in dettaglio il processo di controllo dell'evento, la comprensione delle informazioni nell'evento e la gestione dell'evento in base al fatto che si tratti di un'applicazione di prima o di terze parti. In questo processo vengono usati gli strumenti di debug per Windows .

Operazioni preliminari

Considerazioni:

  • Verificare di eseguire gli aggiornamenti più recenti per la versione del sistema operativo installata.
  • Verificare che l'applicazione interessata sia aggiornata.
  • Se il software antivirus è installato, verificare che sia in esecuzione nella versione più recente e che siano presenti esclusioni necessarie.

Le informazioni sull'ID evento 1001 level indicano se Segnalazione errori Windows (WER) è abilitato nel sistema. Tuttavia, è necessario modificare questo servizio per raccogliere le level informazioni necessarie per l'indagine. Il sistema non registra queste informazioni per impostazione predefinita per evitare un leggero sovraccarico delle prestazioni.

L'ID evento 1000 con il Error livello è l'evento di arresto anomalo dell'applicazione effettivo. Mostra le informazioni seguenti come esempio:

Log Name:      Application
Source:        Application Error
Date:          <Date Time>
Event ID:      1000
Task Category: Application Crashing Events
Level:         Error
Keywords:      
User:          SYSTEM
Computer:      demo.contoso.com
Description:
Faulting application name: netsh.exe, version: 10.0.22621.1, time stamp: 0x13af0815
Faulting module name: netsh.exe, version: 10.0.22621.1, time stamp: 0x13af0815
Exception code: 0xc0000005
Fault offset: 0x0000000000005399
Faulting process id: 0x0xFEE4
Faulting application start time: 0x0x1DAB66BB5BE07D4
Faulting application path: C:\WINDOWS\system32\netsh.exe
Faulting module path: C:\WINDOWS\system32\netsh.exe
Report Id: <Report ID>
Faulting package full name: 
Faulting package-relative application ID:

Spesso presenta un modulo Microsoft come modulo di errore, ad esempio ntdll.dll, kernel32.dll e kernelbase.dll. Questi moduli vengono usati molto durante l'esecuzione e la transizione dei processi tra la modalità utente e la modalità kernel. Nel processo, vengono catturati come vittime di altri tipi di corruzione precedentemente eseguiti da moduli di comportamento errato.

Eccezioni comuni:

  • 0xc0000022

    STATUS_ACCESS_DENIED

  • 0xc0000005

    STATUS_ACCESS_VIOLATION

  • 0xc0000374

    STATUS_HEAP_CORRUPTION

Quando si verifica un'eccezione, è possibile abilitare la registrazione dettagliata aggiuntiva per il processo e raccogliere un dump completo del processo usando Segnalazione errori Windows (WER) e GFlags (gflags.exe).

Installare gli strumenti di debug per Windows per ottenere gflags.exe, come è incluso negli strumenti. Tuttavia, è sufficiente copiare il file senza installare gli strumenti nel computer che richiede la risoluzione dei problemi.

Raccogliere i dati

Per l'esempio precedente di un arresto anomalo del netsh.exe , configurare il computer per raccogliere i dump per altre informazioni su ciò che ha causato l'arresto anomalo. Sostituire netsh.exe con il file eseguibile identificato nell'ID evento 1000 nel dispositivo.

  1. Configurare WER per raccogliere i dump completi del processo dell'eccezione eseguendo i comandi seguenti da un prompt dei comandi con privilegi elevati:

    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"
    
    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"/v DumpFolder /t REG_EXPAND_SZ /d "C:\WER" /f
    
    md C:\WER
    
    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpCount /t REG_DWORD /d 10 /f
    
    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpType /t REG_DWORD /d 2 /f
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpFolder /t REG_EXPAND_SZ /d "C:\WER" /f
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpCount /t REG_DWORD /d 10 /f
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpType /t REG_DWORD /d 2 /f
    

    Questi comandi consentono di raccogliere e archiviare nella cartella C:\WER fino a 10 dump completi del processo di netsh.exe.

    Note

    Viene aggiunto il percorso del Registro di sistema Windows in Windows 64 (WOW64), che consente l'esecuzione di applicazioni a 32 bit su sistemi a 64 bit.

  2. Configurare GFlags per monitorare le allocazioni dell'heap per tenere traccia del danneggiamento.

    Passare alla directory in cui si trova lo strumento ed eseguire i comandi seguenti da un prompt dei comandi con privilegi elevati.

    Per attivare il flag Enable page heap (hpa):

    Gflags.exe /i netsh.exe +hpa
    

    Per disattivare il flag Abilita heap pagina:

    Gflags.exe /i netsh.exe -hpa
    

    Riavviare il processo per rendere effettiva l'impostazione.

  3. Monitorare la cartella C:\WER e verificare la presenza di dump creati.

Analisi dei dati

Dopo aver ottenuto i dump del processo, è possibile:

  • Condividere i dump pertinenti con la terza parte per l'indagine se il processo è un processo di terze parti.
  • Contattare supporto tecnico Microsoft per analizzare i dati se il processo è un processo di prima parte.
  • Usare il debugger (windbg.exe) installato usando gli strumenti di debug per Windows e provare a determinare il modulo di errore usando l'estensione !analyze.

Dopo aver raccolto i dati e aver completato l'indagine, eliminare la chiave del Registro di sistema (quella con il nome del processo) e disattivare il flag Abilita heap della pagina per GFlags.