© www.a-m-i.de, Alexander Müller Informatik
EDV Sachverständiger / Gutachter
Bernhard O. Gramberg
Diplom-Informatiker
Mail: gramberg@sv-berlin.de
www.sv-gramberg.de
Einführung
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.
Das eigentlich nebensächliche zum Dr. Watson, was aber die Masse der
Anfragen zu diesem Artikel betrifft: Das Tool "Dr. Watson" kann nichts
dafür, daß Ihr PC "spinnt", dieses Tool dient eigentlich nur zum
Aufräumen, nachdem bereits ein Crash passiert ist. Das Tool ist weder
ein Indikator für einen Virus oder Trojaner, noch für sonst
irgendwelche Schädlinge: Wenn der Watson aktiv geworden ist, ist
irgendein Programm oder ein Dienst gecrasht.
Wenn man unter häufigen Dr. Watson -
Fenstern leidet, gibt es verschiedene Möglichkeiten, diese Problematik
anzugehen. Es ist ratsam, die Ursache des oder der Crashs
herauszufinden, dazu sollte man das betreffende Programm, welches den
Crash verursacht hat, identifizieren. Wie das geht, wird weiter unten
beschrieben. Viele Leute interessiert das aber gar nicht, und denen
kann geholfen werden, indem sie den Dr. Watson einfach abschalten
(siehe dazu: Aktivierung und Deaktivierung).
Nur, wer über den Quellcode des Verursacher-Programms verfügt, welches
eine Watson-Meldung verursacht hat, der wird sich für den detaillierten
Crash-Grund interessieren, den Dr. Watson liefern kann: Siehe dazu den Teil 2: Analyse der Dr. Watson - Dateien.
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). Im nächsten Abschnitt wird
gezeigt, wie man die Anzahl dieser Einträge einstellen kann.
|
Aktivierung und Deaktivierung
Das Dr. Watson - Tool kann in der Registry aktiviert oder deaktiviert
werden. Standardmäßig ist es erst einmal aktiviert.
Die entsprechende Stelle in der Registry lautet:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\AeDebug. Für Änderungen in diesem Registry-Ordner
sind Administrator-Berechtigungen nötig. Dies ist ein Ordner, in dem es
drei wichtige Einträge gibt:
- Auto (Stringwert)
- Debugger (Stringwert)
- UserDebuggerHotkey (DWORD)

Bis hierher waren noch alle Windows - Systeme gleich, doch ab jetzt unterscheidet es sich etwas.
Windows NT und 2000:
Wenn der Ordner "AeDebug" gar nicht vorhanden ist,
dann wird bei einem Crash lediglich ein Fenster angezeigt, das man nur mit OK bestätigen kann.
Dies ist die einfachste Möglichkeit, den Watson komplett abzuschalten.
Das Fenster, welches im Crash-Fall dann kommt, ist folgendes:

Windows XP und Server 2003:
Hier kommt im Fall eines Crashs stets das folgende Fenster:

Dieses Fenster dient dazu, Details über den aufgetretenen Absturz
direkt an Microsoft zur Analyse zu übermitteln (selbstverständlich
kostenlos). Wenn der gleiche Fehler schon mehrfach aufgetreten ist und
Microsoft die Ursache analysiert hat, dann bekommt man nach der
Übermittlung der Fehlerdaten einen Link zu einer Webseite (bzw mehrere
Links zu Webseiten), auf der die Ursachen des Fehlers sowie (falls verfügbar)
ein Umgehungsweg beschrieben wird.
Dieses Fenster läßt sich komplett abschalten, indem man in der
Systemsteuerung auf System / Erweitert / Fehlerberichterstattung geht
und die Fehlerberichterstattung grundsätzlich deaktiviert
(sie dient ja lediglich der Information und ist für den Betrieb des
Rechners nicht wirklich wichtig). Zusätzlich sollte man noch den Dienst
"Fehlerberichterstattung" gänzlich deaktivieren (das geht mit
Systemsteuerung / Verwaltung / Dienste / Fehlerberichterstattung). Das
Deaktivieren von nicht benötigten Diensten hat viele Vorteile:
Schnellerer Systemstart, weniger Speicher- und CPU-Leistungsverbrauch,
bessere Performance.
Andere Möglichkeit: Ab Windows XP kann man die Fehleranalyse auch für einzelne Programme deaktivieren,
dies geht mit Systemsteuerung / System / Erweitert / Fehlerberichterstattung / Programme auswählen.
Was man ebenfalls beeinflussen kann, ist die Tatsache, ob ein Dumpfile erstellt wird oder nicht:
Wenn der Ordner "AeDebug" nicht in der Registry vorhanden ist, dann wird auch Dr. Watson
nicht aufgerufen, und entsprechend kein Dump erstellt.
Ein Dumpfile, welches mit Dr. Watson nichts zu tun hat, ist das
Speicherabbild (Dump), welches man ab XP unter Systemsteuerung / System
/ Erweitert / Starten und Wiederherstellen / Systemfehler konfigurieren
kann:

Hierbei handelt es sich um ein komplettes System - Dump, welches in
erster Linie für Treiberprogrammierer interessant ist. Hier geht es nur
um komplette System-Abstürze (sogenannte "BlueScreens"), nicht um den
Absturz einer Anwendung. Wenn das komplette Betriebssystem abstürzt,
liegt es in aller Regel an einem Treiber, und der ein oder andere hat
vielleicht schon einmal den Blauen Bildschirm mit den vielen
verwirrenden Zahlen und Buchstaben gesehen; in einem solchen Fall kann
ein Speicherabbild erstellt werden, welches dazu beitragen kann, die
Ursache für den Crash herauszufinden.
Für alle Windows - Systeme gilt:
"Debugger" ist der Dateiname des Debug - Tools,
welches im Crash-Fall aufgerufen werden soll, mit vollständigem Pfad, und ein paar Parametern.
In aller Regel steht dort:
%windir%\system32\drwtsn32 -p %ld -e %ld -g
Es können dort aber auch andere Debugger angegeben sein, wie z.B.
WinDBG oder der Visual C++ - Debugger, wie im obigen Screenshot
gezeigt. Dies ist aber nur sinnvoll auf Entwickler - PCs, wo diese
Debugger installiert sind, und wo man sich einen Crash sofort
detailliert anschauen kann.
"Auto" entscheidet darüber, ob die Crash - Behandlung automatisch erfolgen soll (Wert 1),
oder ob der Benutzer Einfluß darauf hat (Wert 0).
Wenn der Wert auf "0" steht, bekommt der Anwender folgende Fenster gezeigt, bei denen er entscheiden kann,
ob der eingestellte Debugger gestartet werden soll oder nicht:
Windows NT und 2000:

Mit "OK" passiert einfach gar nichts, und mit "Esc" oder dem Button "Abbrechen"
wird Watson bzw. der Debugger gestartet.
Steht "Auto" auf dem Wert "1", dann kommt gar keine MessageBox,
sondern Watson / Debugger startet sofort.
Wenn infolge eines Crashs das Watson - Tool aufgerufen wurde, sieht man folgendes Fenster:

Der OK - Button kann eine Weile disabled sein, solange die nötigen
Informationen noch ermittelt und zur Platte geschrieben werden. Mit dem
Abbrechen - Button oder der Esc-Taste kann die Aktion des Watson -
Tools abgebrochen werden.
Windows XP und Server 2003:

Wenn der Registry-Wert "Auto" auf 0 steht, erscheint dieses Fenster, und der Anwender kann
selbst entscheiden, ob Dr. Watson bzw. der Debugger gestartet wird, oder nicht.
Mit der Taste "Debug" kann man den eingestellten Debugger starten, im Fall des Dr. Watson wird
das Dumpfile erstellt. Es wird dann kein Fehlerbericht an Microsoft gesendet. Ansonsten hat man natürlich noch
die Wahl zwischen "Problembericht senden" (ohne Erstellung eines Dumpfiles) und "Nicht Senden"
(wobei einfach gar nichts passiert).
Bei "Auto" = 1 wird Dr. Watson bzw. der Debugger automatisch aufgerufen, und der Button
"Debug" steht nicht zur Verfügung.
Für alle Windows - Systeme gilt wieder: Mit dem Registry-Eintrag "UserDebuggerHotkey" kann man
einen festen Key einstellen, mit dem in einer Applikation ein künstlicher
Breakpoint ausgelöst wird. Dies macht sich aber nur beim Betrieb der Applikation in einem Debugger bemerkbar.
Standardmäßig ist unter Windows NT und 2000 die Taste F12 eingestellt.
|
Einstellungen des Watson - Tools
Man kann die Datei DRWTSN32.EXE (im Windows-System32-Ordner) einfach
ohne Parameter aufrufen (z.B. durch Doppelklick), dann zeigt sich
folgendes Bild:

Hier kann man Einstellungen vornehmen, wie sich das Watson - Tool bei
künftigen Crashes verhalten soll, und man kann sich die Historie der
aufgezeichneten Crashes ansehen.
Das Crashdump wird nur dann erzeugt, wenn
die Checkbox "Datei für Absturz-Speicherabbild erstellen" aktiviert
ist. Dazu ist es aber auch notwendig, einen Dateinamen und einen Pfad
für die Crashdump - Datei anzugeben, und dies geschieht mit den beiden
obersten Eingabefeldern.
Mit "Anzahl der Anweisungen" kann man
angeben, wie genau die Protokollierung sein soll, das heißt wieviele
Detailinformationen um die Fehlerquelle herum protokolliert werden
sollen. Im Feld "Anzahl der zu speichernden Fehler" gibt man an,
wieviele Crashereignisse man protokollieren möchte (die jeweils
ältesten Ereignisse fliegen dann automatisch aus dem Log heraus).
Mit der obersten Checkbox kann man die
Auflistung der Symboltabellen im LOG erzwingen, dies ist sehr sinnvoll,
wenn von den Modulen des Crash - Prozesses die symbolischen Debug -
Informationen zur Verfügung stehen, z.B. PDB - Dateien.
Mit "Alle Thread-Kontexte abbilden" kann man festlegen, daß nicht nur
der Thread im LOG protokolliert wird, der den Crash verursacht hat,
sondern daß alle anderen Thread - Kontexte ebenfalls protokolliert
werden.
"An ein bestehendes Protokoll anhängen" sorgt dafür, daß jedes neue
Crash - LOG an die vorhandene drwtsn32.log hinten angefügt wird.
Andernfalls würde jedesmal ein neues LOG - File erstellt und das alte
vorher gelöscht.
Mit "visuelle Benachrichtigung" kann man einstellen, ob überhaupt ein
Fenster vom Watson hochkommen soll, oder ob das Tool seine Arbeit im
verborgenen verrichten soll. Mit "Klang" kann man sich sogar bei jedem
Watson einen Klangeffekt anhören.
Die Liste unter "Anwendungsfehler" beinhaltet die Historie der
aufgezeichneten Crashes. Durch Selektion in dieser Liste kann man mit
den Buttons daneben einzelne LOG - Einträge löschen oder anzeigen.
|
Ungeklärtes
Bislang wurde die Datei "drwtsn32.exe" beschrieben, mit der die Einstellungen vorgenommen werden, und die
auch automatisch Logdatei und Crashdump beschreibt.
Nun liegt aber auf Windows XP und 2000 im System32 - Ordner zusätzlich
ein Programm "drwatson.exe", dessen Bedeutung etwas unklar ist. Auch
wenn das Filedatum sich mit jeder Windows - Version etwas neuer
darstellt, gibt es sich nach Aufruf immer als Version "1.00b" aus, die
interne Versionsinfo ist inkonsequenterweise "3.10.0.103" (und das
trotz verschiedener Filestamps), und das Look&Feel ist überhaupt
nicht Windows - konform (weder der OK-Button, noch das Close-Icon oben
rechts schließen das Programm). Das Ding läuft nicht mal als eigener
Prozess, sondern unter der NTVDM.EXE (es dürfte also ein
16-Bit-Windows-Programm sein). Ich denke, daß das Programm lediglich
aus Kompatibilitätsgründen mit Windows 98/Me eingeführt wurde. Dort gab
es nämlich eine solche EXE, die zuerst von Hand gestartet werden muß
(was in NT / 2000 / XP ja nicht nötig ist, s.o.), um dann eine
Überwachung des laufenden Betriebs vorzunehmen (siehe den Microsoft-Artikel Q185837).
Ich vermute, daß mit der Auslieferung dieser Datei alle Programme, die
"drwatson.exe" aufrufen, zufriedengestellt werden sollten, und man eine
reibungslose Migration von 98/Me auf die neuere Technik (NT/2000/XP)
gewährleisten wollte. Meines Erachtens nach kann man die Datei auch
getrost löschen. Aber wie gesagt, dies ist eine Vermutung, und wer
genaueres weiß, möge mir dies bitte mitteilen.
Zum zweiten Teil dieses Artikels
|
Buchtips

|
"Debugging Applications"
von John Robbins ist ein sehr wertvolles Buch für jeden, der unter
Windows - Betriebssystemen nach Fehlern sucht. Es ist zwar im Jahr 2000
erschienen und damit schon etwas alt (.NET kommt gar nicht vor), aber
weil es bei den Grundlagen des Windows- Debuggings ansetzt, ist es
sicher noch einige Jahre aktuell. Der Crash-Behandlung ist ein eigenes
Kapitel gewidmet. Ich habe das Buch fast in einem Zug "verschlungen",
und es ist heute eines meiner wichtigsten Nachschlagewerke.
Informationen zum Buch
John Robbins Webseite
|
 Details
|
 Details
|
"Taschenratgeber: Windows 2000 , Windows XP"
Diese Bücher sind der praktische Ratgeber für die tägliche Arbeit von
Netzwerkadministratoren in kleinen, mittleren und großen Unternehmen.
Ideal für den Arbeitsplatz oder den Einsatz unterwegs, denn diese
Bücher zeigen Ihnen sofort die Antworten auf Fragen in den
verschiedensten Situationen der Windows 2000 / XP - Administration und
des Supports. Aber auch Windows - Poweruser können von diesem Buch
profitieren. Übersichtliche Tabellen, Listen, Befehle und zahllose
Schritt-für-Schritt-Anleitungen zeichnen diese Bücher aus: kurz, klar,
präzise.
|
Win 2000
 Details
|
Win XP / 2003
 Details
|
"Windows Befehle - kurz & gut"
von Aeleen Frisch enthält praktisch alle Kommandozeilenbefehle, die man
unter Windows zur Verfügung hat. Angefangen von den klassischen DOS -
Befehlen über die Active Directory Konfiguration bis zur Prozeß- und
Threadverwaltung ist alles drin, was das Herz des Skript -
Programmierers begehrt.
Kleines, wertvolles Taschenbuch für weniger als 10 Euro: ein Muß für jeden Windows - Administrator.
|
|
Support, Feedback, Anregungen
Alles verstanden ? Oder noch Fragen ? Wir freuen uns über Feedback zu
den Tips, auch über Verbesserungsvorschläge. Schreiben Sie an support@a-m-i.de.
|
|