Ursachen für Programmabstürze finden

    Windows Error Recovery (WER)Abstürze von Anwendungen lassen sich in vielen Fällen durch den Einsatz freier Tools innerhalb weniger Minuten bis zu ihrer Ursache hin zurückverfolgen. Im Rahmen der Session „The Case of the Unexplained, 2010: Troubleshooting with Mark Russinovich“ auf der Microsoft TechEd 2010 in Berlin demonstrierte Mark Russinovich, wie man mit Hilfe des Process Explorers und Windbg für bereits abgestürzte Anwendungen herausfinden kann, was die Ursache für deren irreguläre Beendigung war.

    Findet der Absturz in der EXE-Datei einer Anwendung selbst statt, bleibt nichts anderes übrig, als sich zwecks Behebung des Fehlers mit deren Hersteller beziehungsweise Entwickler in Verbindung zu setzen. Oft ist es jedoch ein Add-On zu einem Programm, das dessen Stabilität beeinträchtigt; insbesondere etwa bei Abstürzen vom Internet Explorer oder Microsoft Office.

    Einstellungen für die Problemberichterstattung ändern

    werfault.exe bei jedem Problem aufzurufen, muss man zunächst konfigurierenWindows ist so voreingestellt, automatisch online nach Lösungen für Programmabstürze zu suchen und gegebenenfalls zusätzliche Berichtsdaten zu senden. Für letzteres holt es sich das Einverständnis des Benutzers ein. Sieht man die typische WER-Dialogbox mit der Auswahl, online nach einer Lösung zu suchen oder das Programm ohne diese Suche zwangszubeenden nicht, ist das Senden zusätzlicher Berichtsdaten nicht notwendig und Windows kann die Fehlerbehandlung komplett im Hintergrund abwickeln. Zur Ermittlung der ID eines sterbenden Prozesses muss man Problemberichterstattung zunächst so einstellen, dass der Benutzer immer gefragt wird: Die besagte Dialogbox stammt von werfault.exe und nur während sie geöffnet ist, kann man die PID ermitteln.

    Die Einstellung ist ein wenig versteckt: In der Systemsteuerung klickt man auf „System und Sicherheit“ dort auf „Wartungscenter“ und klappt die Drop-Down-Liste „Wartung“ aus. Hier klickt man auf „Einstellungen“ und aktiviert „Bei Problemen erst Bestätigung anfordern, bevor nach Lösungen gesucht wird“.

    PID eines abgestürzten Prozesses ermitteln

    Hinter -p verbirgt sich die PID des abgestürzten ProzessesUm die PID eines abgestürzten Prozesses zu erhalten, verwendet man Process Explorer von Sysinternals. Ist er lokal nicht installiert, kann er auch per

    http://live.sysinternals.com/procexp.exe

    direkt aus „Start, Ausführen“ heraus gestartet werden. Nach einem Doppelklick auf den Prozess werfault.exe erfährt man auf der Registerkarte "Image" die dazu aufgerufene Kommandozeile – die PID des fraglichen Prozesses befindet sich hinter den Argument -p.

    Arbeit mit WinDbg

    Das komplette Verfahren, aus der PID die schuldige DLL ermittelt, erläutert Russinovich in einem Blog-Eintrag auf dem TechNet ausführlich. Der Vortrag „The Case of the Unexplained, 2010: Troubleshooting with Mark Russinovich“ samt Präsentation steht als Webcast in der Version von der amerikanischen TechEd zur Verfügung.

    Keine Kommentare