|
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:
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

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.
2.20.2 Erstellen einer Speicherabbilddatei (.dmp) für einen Prozess, der aufgrund einer Ausnahme beendet wird
- 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.
- Doppelklicken Sie in der Systemsteuerung auf
Process Dump (Prozessabbild).
- 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.
- Klicken Sie im Feld Monitor auf den
Programmnamen, den Sie in Schritt 3 hinzugefügt haben, und klicken Sie
anschließend auf Rules (Regeln).
- 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
- 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.
- 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:

© 2018 FGH GmbH Mannheim. Alle Rechte vorbehalten.
|