Startseite
Impressum
Skills
Referenzen
pfeil Produkte
Links
pfeil Tips
Benutzerverwaltung 1
Benutzerverwaltung 2
Das ideale Paßwort
Datum und SQL-DB
DSL-Probleme
Dr. Watson Teil 1
Dr. Watson Teil 2
DTS Automatisierung
Installation autom.
Kalender und Zeit
Mail Automatisierung
Office Automation
Stack Frame
SQL Server
Strings + Unicode
VB 6 Tips & Tricks
Windows-Uhrzeit

 

Drucker - freundliche Darstellung


  zalando.de - Schuhe und Fashion online

 

Letzte Aktualisierung: 04.01.2023



Dr. Watson: Was er macht und wie man ihn einstellt

Dr. Watson ist ein Tool zum Aufzeichnen von Crash-Informationen und Dumps, welches auf jedem Windows - System automatisch vorinstalliert wird. Microsoft nennt es einen "Debugger", was von der Definition her zwar stimmt, aber stark übertrieben ist. Das Tool wird im Fall eines Programm - Crashs automatisch aufgerufen, und erstellt dann eine Logdatei und optional ein Crashdump (Binärdatei).

Einführung

Aktivierung und Deaktivierung des Watson-Tools

Einstellungen des Watson-Tools

Buchtips

Zum Teil 2: Analyse der Dr. Watson - Dateien

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 wie viele 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

cover





"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



cover
Details






cover
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
cover
Details


Win XP / 2003
cover
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.