Bluescreen Analyse mit den Debugging Tools
Wenn eine Bluescreen erscheint ist erstmal guter Rat teuer. Liegt es an einer defekten Hardware oder einen Softwarefehler? Das lässt sich oftmals nicht so klar aus der Meldung herauslesen, bzw. ist das
Neustarten bei einem Ausnahmefehler aktiviert, dann bekommt man die Bluescreen gar nicht oder nur sehr kurz zu Gesicht.
Startet der Rechner einfach neu, dann sollte man zunächst zur Fehlerdiagnose diese Funktion abstellen. Dies wird unter
Vista oder XP in der
Systemsteuerung unter
System ->
erweiterte Systemeinstellungen ->
Erweitert im Bereich
Starten und Wiederherstellen erledigt. Hier das "
Automatische Neustarten"
deaktivieren.
Wer jetzt viel Glück hat, kann aus der wieder auftretenden Bluescreen einen Hinweis auf eine Systemdatei herauslesen. Ist hier aber dennoch auüer einige Speicherbereiche und einer ominösen Meldung nichts klar abzuleiten, dann gibt es zunächst einen zweiten Anhaltspunkt, die Systemprotokolle.
Diese findet Ihr unter der
Systemsteuerung,
Verwaltung,
Ereignisanzeige. In der Rubrik System werden alle Fehler aufgezeichnet. Sucht den Bereich nach dem Datum und Uhrzeit, wo eben die Bluescreen aufgetaucht ist. Wenn Ihr hier rote Warnsymbole findet seht Euch diese an. In der Regel steht danach als Ereignis, dass das System unerwartet neu gestartet wurde.
Gibt das auch keinen Aufschluü über einen Fehler, gibt es noch den Weg über einen Debugger. Hierzu müsst Ihr die Devtools von Microsoft installieren. Diese findet Ihr unter folgender URL:
http://www.microsoft.com/whdc/devtoo...g/default.mspxHaltet Euch bei der Auswahl des Programmpaketes bitte an die Version Eures Betriebssystems. Wenn Ihr ein 64bit System verwendet , dann auch bitte die Tools in der 64bit Version herunterladen und installieren.
Windows legt einen sogenannten Crashdump (Spiegeldatei aus dem RAM zum Zeitpunkt des Crashes) unter dem Verzeichnis
/windows/Minidump ab. Diese Datei endet mit
*.dmp . Startet nun das Programm
WinDbg (bitte als Systemadministrator, also bei nicht Homeversionen Rechtsklick und "als Admin ausführen") und klickt auf
File -> Symbol File Path . Das verzweigen wir dann online (eine Internetverbindung muss bestehen), indem wir in das darauf folgende Fenster folgende URL eingeben:
Code:
srv*c:cache*http://msdl.microsoft.com/download/symbols;
Jetzt können wir mit der Analyse beginnen. Klickt hierfür auf
File -> Open Crash Dump und wählt Eure *.dmp Datei unter
/windows/Minidump aus. Die Frage ob das im Workspace gespeichert werden soll könnt Ihr mit "No" beantworten. Dann läuft der Debugger los. Es dauert einwenig, bis er den ersten kurzen Durchlauf hat. In meinen Beispiel lese ich dann hier folgendes Ergebnis:
Code:
Use !analyze -v to get detailed debugging information.
BugCheck D1, {0, 2, 1, fffffa6000da50ec}
Unable to load image SystemRootsystem32DRIVERSxyz.sys, Win32 error 0n2
Ein erster Hinweis auf das Programm, das vermutlich damit zu tun haben könnte, mit meinem Virenscanner.
Weiter unten steht noch ein zweiter Hinweis:
Code:
Unable to load image SystemRootsystem32DRIVERSRtlh64.sys, Win32 error 0n2
Dies deutet auf den Bereich der
Netzwerkkarte hin. Klickt nun auf den im Ausgabefenster angezeigten Link
!analyze -v . Jetzt kommen detailierte weitere Hinweise. Die Ausgabe kann auch einen Moment dauern.
Jetzt sehe ich in meinem Beispiel folgende Ausgabe:
Code:
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: 0000000000000000, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000001, value 0 = read operation, 1 = write operation
Arg4: fffffa6000da50ec, address which referenced memory
Debugging Details:
------------------
WRITE_ADDRESS: GetPointerFromAddress: unable to read from fffff80002276080
0000000000000000
CURRENT_IRQL: 2
FAULTING_IP:
ndis!ndisMSendCompleteNetBufferListsInternal+dc
fffffa60`00da50ec 488916 mov qword ptr [rsi],rdx
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
BUGCHECK_STR: 0xD1
PROCESS_NAME: xyz.exe
Der Prozess Name in diesem Fall gibt nun nen Hinweis, welches Programm wohl am Fehler beteiligt war.
An der Stelle hat man nun die Möglichkeit, weiter auf Fehlersuche zu gehen. Ich habe selbst einen veralterten
Netzwerktreiber installiert gehabt, der vielleicht zusammen mit dem kürzlich installieren
Vista Servicepack1 nicht richtig zusammenarbeitet und mein Virenscanner an der Stelle crasht. Ich habe nun den Treiber aktualisiert. Tritt die Bluescreen nocheinmal auf, ist der nächste Weg, den Hersteller des Scanners zu kontaktieren.
Ich hoffe Euch damit ein paar wertvolle Tipps für eine systematische Fehlersuche gegeben zu haben.
Liebe Grüüe,
Euer
Gargi