[HowTo] Bluescreen auswerten - Diskussionsthread

Auswertungsbeispiele aus der Community

Anfangen möchte ich mit einem aktuellen Problem (Bluescreens), welche(s) durch ein Microsoft Update verursacht wird (Quelle: MS14-045: Description of the security update for kernel-mode drivers: August 12, 2014).

Hierzu wurde ich gefragt, wie man über den Debugger auf die Lösung (Löschen der fntcache.dat) kommen kann.

Die Lösung (löschen der fntcache.dat, oder das Deinstallieren des Updates kbxxxxxxx) wird zwar nicht vom Debugger vorgeschlagen, aber über den Stack-Verlauf kann man darauf kommen:

PAGE_FAULT_IN_NONPAGED_AREA (50)

Arg1: fffff901c069d4c4, memory referenced.
Arg2: 0000000000000000, value 0 = read operation, 1 = write operation.
Arg3: fffff9600009cca3, If non-zero, the instruction address which referenced the bad memory
address.
Arg4: 0000000000000005, (reserved)

FAILURE_BUCKET_ID: X64_0x50_win32k!bLoadFontFile+1f3

STACK_TEXT:
nt!KeBugCheckEx <-- Das ist der Bluescreen/Absturz
nt! ?? ::FNODOBFM::`string'+0x43801
nt!KiPageFault+0x16e <-- Speicherfehler bei einem Lesevorgang (siehe Arg.2)
win32k!bLoadFontFile+0x1f3 <-- Laden der Schriften
win32k!ttfdSemLoadFontFile+0x6b
win32k!PDEVOBJ::LoadFontFile+0x7e
win32k!vLoadFontFileView+0x45b
win32k!PUBLIC_PFTOBJ::bLoadFonts+0x668
win32k!GreAddFontResourceWInternal+0x18e
win32k!NtGdiAddFontResourceW+0x174
nt!KiSystemServiceCopyEnd+0x13
0x7fe`fdcaa88a

Das ist ein ungewöhnlich klares Bild (mehrfache Erwähnung der Fontfile) für ein win32k Problem. Aus dem Stack Verlauf ist auch zu sehen, dass das Laden der Fontfile einen Speicherfehler und damit den Absturz verursacht hat. Grund genug dem LoadFonts mal nach zu gehen. Zu erkennen, dass das Problem mit dem Laden der Schriften zusammenhängen kann ist auch schon der Schlüssel, um auf die Lösung zu kommen.
Bei Problemen mit den Fonts wird regelmäßig empfohlen den Fontcache zu löschen (z.B. über Tante Google zu erfahren). Und hier sind wir bei der "FNTCACHE.DAT", die in diesem Fall zu löschen ist.

-Wird im HowTo weitergeführt-
 
Zuletzt bearbeitet:
AW: [HowTo] Bluescreenauswertung - Diskussionsthread

Ich hätte noch zwei Vorschläge bzw. Nachfragen zur Anleitung:

1. Ich muss den jedes Mal, wenn ich das Programm neu starte, den Link unter Symbol File Path wieder neu eingeben. Anscheinend wird dieser Link nicht gespeichert. Gibt es die Möglichkeit ihn permanent im Programm zu speichern?

2. Nach der Analyse einer Dumpfile muss ich das Programm für eine weitere Analyse schließen, weil die Option "Open Crash Dump" ausgegraut ist. Das ist etwas umständlich. Kann man auf irgend eine Weise mehrere Dumpfiles nacheinander analysieren, ohne das Programm jedes Mal neu zu starten?

Munter bleiben!
 
AW: [HowTo] Bluescreenauswertung - Diskussionsthread

Hallo Hornissentreiber,

danke für deine Rückmeldung :)

Zu 1. Die Möglichkeit gibt es (der Hinweis fehlt im HowTo -> wird noch ergänzt). Bei jedem Start lädt der Debugger eine "Default Workspace". Diese beinhaltet insbes. Einstellungen für den Symbolpfad, Imagepfad, Logfile Einstellungen, des weiteren noch Verbindungseinstellungen für Remote Debugging Sessins, etc. Nachdem der Symbol File Path eingebeben wurde, diese neue Information als "Default" Workspace abspeichern. Also einfach nochmal auf "File" klicken und anschließend "Save Workspace" auswählen. Der Symbol File Path sollte dann in der Default Workspace gespeichert sein (werde ich zu Hause aber nochmal überprüfen!).

Es gibt zwar einen Hinweis im HowTo:

Bei einer Abfrage ob die Informationen für die "Workspace" gespeichert werden sollen, merkt sich in diesem Schritt der Debugger (falls ihr "ja" auswählt) den Speicherpfad der Dump Datei. Beim nächsten arbeiten mit dem Debugger wählt er als Speicherpfad den eben gewählte Zielpfad aus.

Da habe ich aber nur den Speicherpfad der Dump erwähnt. Zudem kommt bei der aktuellsten Version des Debuggers die Speicherabfrage nicht mehr (zumindest bei mir).
Kurze Rückfrage: hast du die aktuellste Version des Debuggers installiert...und kommt bei dir die Abfrage, ob die Workspace gespeichert werden soll (beim Schließen des Debuggers)?

Zu 2. Du kannst die Dumpfiles nacheinander analysieren, ohne den Debugger neu starten zu müssen. Wenn du mit der Debugging-Session fertig bist einfach in der Kommandozeile "Q" eingeben (klein und ohne ""). Anschließen kann eine neue Dump geladen werden.
Der Hinweis ist im HowTo an zwei Stellen drin (Kapitel "Erste Schritte zur Auswertung" und "nützliche Debugging Befehle"):

Sitzung des Debuggers beenden: Gebt in die Kommandozeile "q" (ohne "") ein, um die Sitzung zu beenden und bevor ihr eine andere Dump in den Debugger laden wollt.

Ist aber auch ziemlich viel Text geworden (ich hoffe es ist dadurch nicht all zu unübersichtlich).
 
AW: [HowTo] Bluescreenauswertung - Diskussionsthread

Da ärgere ich mich immer, wenn die Leute meine Texte nicht richtig lesen und dann überlese ich selber wichtige Punkte. :redface: Es ist wirklich viel Text, aber das ist angesichts der Komplexität des Themas auch nicht verwunderlich. Ich wüsste auch nicht, wie man das mit weniger Text schreiben könnte und unübersichtlich hast du das nicht gestaltet, sondern sehr sauber strukturiert, wie ich finde. Man muss es aber eben als Nutzer dann auch lesen. :schief: Männi thänks!
 
AW: [HowTo] Bluescreenauswertung - Diskussionsthread

Habe das HowTo ergänzt:

und OK drücken. Jetzt können alle notwendigen Informationen zum Debuggen direkt vom Microsoft Symbolserver geladen werden, das geschieht automatisch, benötigt aber eine bestehende Internet-Verbindung (alternativ können auch die kompletten Symbol-Dateien heruntergeladen werden: Herunterladen von Windows-Symbolpaketen. Die Einstellung im Symbol File Path muss dann entsprechend dem Ordnerpfad eingestellt werden in dem die Symbole entpackt werden (z.B. "C:\Symbols"). Um den Symbolpfad nicht bei jedem Start des Debuggers erneut eingeben zu müssen nochmals auf "Files" klicken und anschließend "Save Workspace" auswählen.

...

Anschließend über Files, das Speicherabbild für den Debugger öffnen: Files -> Open Crash Dump (Tastankombination: STRG + D)
Die Dump Datei auswählen und öffnen.
Hierbei ist entscheidend, welche Art von Debuginformationen in den erweiterten Systemeinstellungen hinterlegt sind.
Speicherpfad der dmp Datei (vollständiges Kernelspeicherabbild) ist C:\Windows -> "MEMORY.dmp".
Speicherpfad der Minidumps ist C:\Windows\Minidump -> "Minixxxxxx-xx.dmp"

Bei einer Abfrage ob die Informationen für die "Workspace" gespeichert werden sollen, merkt sich in diesem Schritt der Debugger (falls ihr "ja" auswählt) den Speicherpfad der Dump Datei. Beim nächsten arbeiten mit dem Debugger wählt er als Speicherpfad den eben gewählte Zielpfad aus. Sofern diese Abfrage nicht erscheint und ihr den Speicherpfad dennoch dauerhaft abspeichern möchtet, könnt ihr das über "Files" -> "Save Workspace" machen. (Hintergrund: Bei jedem Start lädt der Debugger eine "Default Workspace". Diese beinhaltet insbes. Einstellungen für den Symbolpfad, Imagepfad, Logfile Einstellungen, des weiteren noch Verbindungseinstellungen für Remote Debugging Sessins, etc. Über "Save Workspace" könnt ihr diese "Default"-Einstellungen anpassen.)
 
Zuletzt bearbeitet:
Zurück