Der abstürzende Firefox
Kürzlich hatte ich ein interessantes Absturz-Problem mit dem Mozilla Firefox, das ich mit Hilfe von Procdump.exe aus den Sysinternals-Tools lösen konnte.
Das Problem tauchte unter Windows 7 SP1 (32-Bit) auf.
Der Firefox stürzte jedesmal direkt nach dem Start ab.
Es betraf alle Benutzer des Rechners, also konnte es nicht am Firefox-Profil liegen (meine erste Vermutung).
Also hab ich den Firefox mal deinstalliert, den übrig gebliebenen Rest im Programm-Verzeichnis unter “C:\Program Files” gelöscht – und ihn neu installiert. Auch das brachte keine Abhilfe. Leider war auch nichts in der Ereignisanzeige von Windows zu finden.
Jetzt fiel mir nur noch ein, einen Dump des Prozesses mit procdump.exe zu erzeugen und diesen zu analysieren.
Dazu öffnete ich eine CMD und startete procdump mit den benötigten Parametern – dieses wartet dann bis der betroffene Prozess gestartet wurde und führt einen Dump (Speicherabbild) des Prozesses aus:
Hier kurz die Erklärung der drei Parameter:
-e: Erzeuge einen Dump, wenn der Prozess eine unbehandelte Ausnahme (unhandled exception) erzeugt
-w: Warte bis der betroffene Prozess gestartet wurde, wenn er nicht läuft (also hier firefox.exe)
-ma: Erzeuge einen Dump des gesamten Prozesses
Nachdem procdump auf den betroffenen Prozess wartet, kann man den Firefox wieder starten. Natürlich stürzt er auch diesmal wieder ab. Und procdump erzeugt unseren Dump:
Mit “WinDbG” aus den Microsoft Debugging Tools konnte ich den Dump jetzt analysieren. Dazu startet man das Programm und geht auf “File –> Open Crash Dump…”:
…und wählt den vorher erzeugten Dump aus:
Mit dem Befehl “!analyze -v” wird der aktuelle Status des Prozesses zum Zeitpunkt des Absturzes analysiert und der mögliche Verursacher angezeigt:
Das war die Ausgabe der Analyse:
Die Datei “xul.dll” schien also für den Absturz verantwortlich zu sein.
Nach kurzer Recherche war klar, dass diese zur Firefox-Installation gehört – sie liegt in dessen Installationsverzeichnis:
Die Datei schien also irgendwie beschädigt zu sein. Also habe ich die Datei mal von einem anderen Rechner rüber kopiert. Und siehe da – der Firefox lief wieder.
Es lief also etwas beim Download des Firefox-Pakets schief. Nachdem ich das gleiche Paket nochmal herunter geladen hatte und dieses installierte, lief es ebenfalls.