vorheriger Abschnitt Inhalt nachfolgender Abschnitt

2.20 Absturzanalyse

2.20.1 Erstellen einer Speicherabbilddatei (.dmp) über Dr. Watson

Dr. Watson gibt es nirgendwo zu kaufen; das Tool kommt mit jeder Windows - Installation mit, liegt stets im Windows - Systemordner drin ("SYSTEM32"), und heißt "DRWTSN32.EXE". Wenn es aktiviert ist (siehe nächster Abschnitt), dann werden bei jedem Programmabsturz zwei Dateien erstellt bzw. erweitert, in denen detaillierte Informationen über den soeben erfolgten Absturz festgehalten werden.

 

Zu den Dateien, die das Dr. Watson - Tool erzeugt: Eine der Dateien ist eine reine Textdatei, sie heißt drwtsn32.log und wird Logdatei genannt. Die andere Datei ist eine Binärdatei (sie ist also mit einem Editor nicht lesbar, nur mit einem Debugger), sie heißt normalerweise user.dmp und wird "Crashdump" genannt. Die Logdatei heißt immer gleich, für das Crashdump kann man auch einen anderen Namen einstellen.

Die Logdatei und die Crashdump-Datei können gelöscht werden, ohne daß es irgendwelche Folgen hätte. Beide Dateien dienen nur zur nachträglichen Auswertung (sog. post mortem Debugging).

Wenn die beiden Dateien noch nicht existieren, werden sie im Crashfall vom Dr.-Watson-Tool neu erstellt. Wenn die Crashdumpdatei schon bestehen sollte, wird die alte gelöscht und eine komplett neue erzeugt. Die Logdatei wird einfach am Ende erweitert, solange, bis die Maximalzahl an Crash-Ereignissen darin enthalten ist (in diesem Fall werden die jeweils ältesten Einträge gelöscht).

 

Einstellungen des Watson - Tools

Man kann die Datei DRWTSN32.EXE (im Windows-System32-Ordner) einfach ohne Parameter aufrufen (z.B. durch Doppelklick), oder durch

Click Start
Click Ausführen...
Das folgende eintippen:

 

drwtsn32

 

 

Click OK

 

In der Konfigurationsoberfläche folgende Anpassungen vornehmen:

Den Pfad für das Log-File auf ein Verzeichnis setzen, wo jeder Leserechte hat.
Beispiel: 

 

C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\Dr Watson

 

 

Ebenso mit der Datei für das Speicherabbild (Absturzbild)
Beispiel:

 

C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\Dr Watson\user.dmp

 

 

Die Anzahl der Anweisungen auf 100 setzen.

Click OK

 

 

bilder/drwatson.JPG

 

 

Schlussendlich muss dafür gesorgt werden, dass Dr. Watson der Default Debugger ist (das ist i.A. der Fall). 

Zu diesem Zweck das Programm mit der Option "-i" starten, bevor der Absturz reproduziert wird.

 

drwtsn32 -i

 

  

 

 

2.20.2 Erstellen einer Speicherabbilddatei (.dmp) für einen Prozess, der aufgrund einer Ausnahme beendet wird

  1. Führen Sie das Programm "Setup.exe" für Ihren Prozessor aus.

    Hinweise:
    • Das Programm "Setup.exe" ist standardmäßig im Dienstprogramm "Userdump.exe" im Ordner C:\kktools\userdump8.0 enthalten.
    • Das Programm "Setup.exe" installiert den Kernelmodus-Treiber, die Datei "Userdump.sys" und erstellt das Symbol "Process Dump" (Prozessabbild) in der Systemsteuerung.
    • Deaktivieren Sie das Feature "dump on process termination" (Speicherabbild bei Prozessbeendung) beim Ausführen des Programms Setup.exe, wenn Sie keine bestimmte Verwendung dafür haben.
  2. Doppelklicken Sie in der Systemsteuerung auf Process Dump (Prozessabbild).
  3. Klicken Sie auf der Registerkarte Exception Monitoring (Ausnahmeüberwachung) auf New, fügen Sie den entsprechenden Programmnamen zu der Liste Monitor hinzu und klicken Sie anschließend auf OK. Fügen Sie beispielsweise "Lsass.exe", "Winlogon.exe", "Mtx.exe", oder "Dllhost.exe" als Programmnamen hinzu.
  4. Klicken Sie im Feld Monitor auf den Programmnamen, den Sie in Schritt 3 hinzugefügt haben, und klicken Sie anschließend auf Rules (Regeln).
  5. Klicken Sie auf Custom Rules (Benutzerdefinierte Regeln), wählen Sie den Fehlertyp aus, den Sie für das in Schritt 3 in der Liste Custom rules hinzugefügte Programm ausführen möchten, und klicken Sie anschließend auf OK.

    Wählen Sie beispielsweise den Fehlertyp Zugriffsverletzung (c0000005) aus.

Wenn das überwachte Programm eine Fehlermeldung über eine Zugriffsverletzung erzeugt, wird das Dienstprogramm "Userdump.exe" gestartet und erstellt eine Speicherabbilddatei (.dmp) im Ordner %SystemRoot%. Wenn Sie diese DMP-Datei analysieren, können Sie möglicherweise die Ursache für die Fehlermeldung über eine Winlogon-Zugriffsverletzung isolieren.

 

2.20.3 Erstellen einer Speicherabbilddatei für einen hängenden Prozess

  1. Führen Sie das Programm "Setup.exe" für Ihren Prozessor aus.

    Hinweise:
    • Das Programm "Setup.exe" ist standardmäßig im Dienstprogramm "Userdump.exe" im Ordner C:\kktools\userdump8.0 enthalten.
    • Das Programm "Setup.exe" installiert den Kernelmodus-Treiber, die Datei "Userdump.sys" und erstellt das Symbol "Process Dump" (Prozessabbild) in der Systemsteuerung.
    • Deaktivieren Sie das Feature "dump on process termination" (Speicherabbild bei Prozessbeendung) beim Ausführen des Programms Setup.exe, wenn Sie keine bestimmte Verwendung dafür haben.
  2. Wenn das Programm nicht mehr reagiert, wechseln Sie in der Befehlszeile zu der Version von "Userdump.exe" für Ihren Prozessor und geben sie den folgenden Befehl ein.
    userdump PID

    Hinweis: Bei diesem Befehl ist PID ein Platzhalter für die Prozesskennung (PID) des Programms, das nicht mehr reagiert. Um die PID des Programms zu ermitteln, öffnen Sie den Task-Manager und klicken Sie anschließend auf die Registerkarte Prozesse.

Wenn Sie den Befehl userdump PID ausführen, wird eine DMP-Datei erstellt. Mithilfe dieser Speicherabbilddatei können Sie eine Post-Mortem-Fehlerbehandlung mit einem Programm wie z. B. "Windbg.exe" ausführen.

Wenn Sie Setup ausführen, um das Dienstprogramm "Userdump.exe" zu installieren, werden zusätzliche Features aktiviert. Eine detailierte Beschreibung zu den zusätzlichen Features des Dienstprogramms "Userdump.exe" finden Sie in der zugehörigen Datei "Userdocs.doc". Zu den zusätzlichen Features zählen:

  • Automatische Prozessabbildung Sie können das Dienstprogramm "Userdump.exe" so konfigurieren, dass es automatisch eine Abbilddatei für ein bestimmtes Programm erstellt, wenn in diesem Programm eine bestimmte Fehlerart auftritt, z. B. eine Ausnahmehandler-Sperre oder ein nicht behandelter Ausnahmefilter auf der obersten Ebene.
  • Abkürzungstasten Prozess-Snapshot Sie können einer einzelnen Tastenkombination ein "Image Binary" zuordnen, um das Dienstprogramm "Userdump.exe" anzustoßen und eine Speicherabbilddatei zu erstellen.
  • Ausnahmeüberwachung Das Dienstprogramm "Userdump.exe" kann Programme auf Ausnahmen hin überwachen und bei bestimmten Ausnahmen automatisch Speicherabbilddateien erstellen. Über das Dienstprogramm "Process Dump" können Sie für jedes Programm festlegen, ob für eine Ausnahme ein Speicherabbild erstellt wird. Sie können über die Systemsteuerung auf das Dienstprogramm "Process Dump" zugreifen.

 

2.20.4 Analyse eines Speicherabbildes (Crashdump)

Die Dateien "drwtsn32.log" und das Speicherabbild bitte den Entwicklern zur Verfügung stellen.

 

Nur für Entwickler:
Dieses Crashdump kann man auf dem Rechner, auf dem der Crash passiert ist, sichern, und von einem Debugger einlesen (der kann durchaus auf einer ganz anderen Maschine sein). Wichtig ist dabei nur, daß man möglichst versuchen sollte, das Crashdump in denselben Ordner zu legen, in dem auch alle Binärdateien des Projekts liegen, also zum Beispiel in den Unterordner "Release" in einem C++ - Projekt. Dann kann sich der Debugger alle benötigten Zusatzinformationen ebenfalls beschaffen. Auch die Versionen (Projektdateien und abgestürzte EXE) sollten passen, weil bei nachträglichen Änderungen am Projekt natürlich alle diese Dateien in Tabellenform durcheinander geraten.

Ausführung: Speicherabbild-Datei doppelklicken und anschließend im Developer-Studio auf Debuggen -> Debuggen starten

Die Analyse des Speicherabbildes liefert i.A. die Adresse der Anwendung bei Programmabsturz. Diese ist ohne erheblichen Aufwand beim Entwickler nur dann hilfreich, wenn das Speicherabbild des Absturzes mit einer Debug-Version der Anwendung erzeugt wurde. In diesem Fall zeigt der Debugger genau die Quellzeile der Anwendung:

bilder/speicherabbild.JPG

 


 
© 2018 FGH GmbH Mannheim. Alle Rechte vorbehalten.