Anleitungen zur Problembehandlung bei Anwendungs- oder Dienstabstürzen
Dieser Artikel enthält Anleitungen zum Behandeln von Problemen mit Anwendungs- oder Dienstabstürzen.
Gilt für: Alle unterstützten Versionen von Windows Server und Windows Client
Wenn die Ereignis-ID 1001 und die Ereignis-ID 1000 wiederholt im Anwendungsprotokoll angezeigt werden, wird ein Absturzverhalten der Anwendung angezeigt. Es tritt zusammen mit Erst- oder Drittanbieterprozessen auf und verweist auf ein mögliches fehlerhaftes Modul.
In diesem Artikel wird der Prozess der Überprüfung des Ereignisses, das Verständnis der Informationen im Ereignis und die Behandlung des Ereignisses basierend darauf erläutert, ob es sich um eine Erst- oder Drittanbieteranwendung handelt. Debugtools für Windows werden in diesem Prozess verwendet.
Voraussetzungen
Überlegungen:
- Stellen Sie sicher, dass Sie die neuesten Updates für die installierte Betriebssystemversion ausführen.
- Überprüfen Sie, ob die betroffene Anwendung auf dem neuesten Stand ist.
- Wenn Antivirensoftware installiert ist, vergewissern Sie sich, dass sie auf der neuesten Version ausgeführt wird und dass die erforderlichen Ausschlüsse vorhanden sind.
Die Ereignis-ID 1001-Informationen level
zeigen, ob Windows-Fehlerberichterstattung (WER) im System aktiviert ist. Sie müssen diesen Dienst jedoch ändern, um die level
für die Untersuchung erforderlichen Informationen zu sammeln. Das System protokolliert diese Informationen nicht standardmäßig, um einen geringen Leistungsaufwand zu vermeiden.
Die Ereignis-ID 1000 mit der Error
Ebene ist das tatsächliche Absturzereignis der Anwendung. Es zeigt die folgenden Informationen als Beispiel:
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:
Es stellt häufig ein Microsoft-Modul als fehlerhaftes Modul dar, z. B. ntdll.dll, kernel32.dll und kernelbase.dll. Diese Module werden häufig verwendet, während Prozesse ausgeführt und zwischen Benutzermodus und Kernelmodus übertragen werden. Im Prozess werden sie als Opfer anderer Arten von Korruption gefangen, die zuvor von fehlverhaltenden Modulen durchgeführt wurden.
Allgemeine Ausnahmen:
0xc0000022
STATUS_ACCESS_DENIED
0xc0000005
STATUS_ACCESS_VIOLATION
0xc0000374
STATUS_HEAP_CORRUPTION
Wenn eine Ausnahme auftritt, können Sie zusätzliche ausführliche Protokollierung für den Prozess aktivieren und ein vollständiges Prozessabbild mithilfe von Windows-Fehlerberichterstattung (WER) und GFlags (gflags.exe) sammeln.
Installieren Sie die Debuggingtools für Windows, um gflags.exe zu erhalten, da sie in den Tools enthalten ist. Sie müssen die Datei jedoch nur kopieren, ohne die Tools auf dem Computer zu installieren, auf dem Problembehandlung erforderlich ist.
Daten erfassen
Richten Sie für das vorangehende Beispiel eines netsh.exe Absturzes den Computer ein, um Dumps zu sammeln, um weitere Informationen darüber zu erfahren, was den Absturz verursacht hat. Ersetzen Sie netsh.exe durch die ausführbare Datei, die in der Ereignis-ID 1000 auf Ihrem Gerät identifiziert wurde.
Richten Sie WER ein, um vollständige Prozessabbilder der Ausnahme zu sammeln, indem Sie die folgenden Befehle an einer Eingabeaufforderung mit erhöhten Rechten ausführen:
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
Mit diesen Befehlen können bis zu 10 vollständige Prozessabbilder des netsh.exe Prozesses gesammelt und im Ordner "C:\WER " gespeichert werden.
Notiz
Der Registrierungsspeicherort von Windows unter Windows 64 (WOW64) wird hinzugefügt, sodass 32-Bit-Anwendungen auf 64-Bit-Systemen ausgeführt werden können.
Richten Sie GFlags ein, um Heap-Zuordnungen zu überwachen, um die Korruption nachzuverfolgen.
Navigieren Sie zu dem Verzeichnis, in dem sich das Tool befindet, und führen Sie die folgenden Befehle an einer Eingabeaufforderung mit erhöhten Rechten aus.
So aktivieren Sie das Heap-Flag "Seite aktivieren" (HPA):
Gflags.exe /i netsh.exe +hpa
So deaktivieren Sie das Heap-Flag "Seite aktivieren":
Gflags.exe /i netsh.exe -hpa
Starten Sie den Prozess neu, damit die Einstellung wirksam wird.
Überwachen Sie den Ordner "C:\WER ", und überprüfen Sie alle erstellten Dumps.
Daten analysieren
Sobald Sie über die Prozessabbilder verfügen, können Sie:
- Teilen Sie die relevanten Dumps mit dem Drittanbieter zur Untersuchung, wenn der Prozess ein Drittanbieterprozess ist.
- Wenden Sie sich an Microsoft-Support, um die Daten zu analysieren, wenn der Prozess ein Erstanbieterprozess ist.
- Verwenden Sie den Debugger (windbg.exe), der mit Debugtools für Windows installiert ist, und versuchen Sie, das fehlerhafte Modul mithilfe der Erweiterung !analyze zu ermitteln.
Nachdem Sie die Daten gesammelt und die Untersuchung abgeschlossen haben, löschen Sie den Registrierungsschlüssel (den Registrierungsschlüssel mit dem Prozessnamen), und deaktivieren Sie das Heap-Flag "Seite aktivieren" für GFlags.