[IE] [TS 3] Abstürze, Hänger, etc.

Der dritte Artikel meiner Blogserie: Troubleshooting des Internet Explorers

 

“Der Internet Explorer startet so langsam”
”Der Internet Explorer stürzt so oft ab”
”Der Internet Explorer bleibt dauernd hängen”
”Während des Ladens einer Webseite kann ich in Ruhe einen Kaffee holen ohne etwas zu verpassen”

So, oder so ähnliches Feedback bekomme ich (leider) häufig und reagiere meist erst mal mit Unverständnis, da ich dies nicht nachvollziehen kann.
Wenn ich mir jedoch dann die Installationen anschaue, dann kommt die Ursache hierfür meist sehr schnell zu Tage: eins oder mehrere der installierten Addons (Browser Helper Object, ActiveX Control) verzögert den Internet Explorer oder lässt ihn sogar abstürzen.

“Hey Microsoft, bei anderen klappt das besser, fixt das!” Tja, so einfach ist es leider nicht. Addons sind im Internet Explorer mehr, als sie bei den meisten anderen Browsern sind. Ein Addon im Internet Explorer wird gleichberechtigt zu anderen Internet Explorer Komponenten geladen und hat daher die gleichen Rechte und Pflichten (!!). D.h., dass die Installation eines Addons, bzw. die Entscheidung für ein Addon sehr gewissenhaft getroffen werden MUSS! 
Leider ist es so, dass insb. bei kostenlosen Downloads von 3rd party Software oft grade Toolbars gerne unterschwellig mitinstalliert werden (vgl. auch meinen Post in dem Windows 7 Blog hierzu:  Und täglich grüßt die Toolbar (oder: IE vs Toolbars) ). Diese Drive-By/Opt-Out Installationen sind sehr beliebt, insb. um bestimmte Produkte (die zum Teil eigentlich schon eine marktbeherrschende Stellung haben und damit lt. Gesetz überhaupt nicht per Opt-Out zur Verfügung gestellt werden dürften) und deren Verwendung zu pushen.

Daher wurde mit Internet Explorer 9 eine sinnvolle neue Funktion eingeführt, die nach einer erfolgten Installation explizit fragt, ob ein bestimmtes Addon aktiviert werden soll, hier am Beispiel der Bing Bar:

image

 

(Ungewollte) Addons lassen sich ansonsten über den “Programme und Funktionen” Dialog in Windows deinstallieren.

 

Jedoch hilft dies oft nur bedingt um herauszufinden, welches Addon vor allem das Starten oder Navigieren verlangsamen. Bei der Untersuchung der Geschwindigkeiten kann der Addonmanager des Internet Explorers helfen, denn dort sind zwei Spalten dazu zu finden, 1. Startdauer (IE8, IE9) und 2. Navigationsdauer (IE9):

image

D.h., dass über die Sortierung nach Ladedauer, bzw. Navigationszeit die Verursacher schnell ausfindig gemacht werden können und sehr schnell über z.B. einen Rechtsklick->Disable deaktiviert werden können. Oft Mals werden diese Addons nämlich eigentlich nicht vom User verwendet, sondern wurden nur “aus Versehen” installiert.

 

Wer (mehr oder weniger) reproduzierbare Probleme mit Abstürzen und/oder Hängern hat, der sollte versuchen, ob bei der Verwendung des Internet Explorers mittels des Aufrufs “iexplore.exe -extoff" die Probleme auch noch auftreten. Falls nicht, dann ist eins der installierten Addons definitif dafür verantwortlich. Ohne Debuggingkenntnisse (s.u.), hilft hier nur “trial & error”, sprich einzeln die Addons deaktivieren und testen, ob es noch auftritt.

Die Erfahrung hat übrigens gezeigt, dass grade die “Verlangsamer” oft auch für Hänger und Abstürze verantwortlich sind (frei nach dem Motto: wer nicht performant coden kann, der wird sich auch um Exceptionhandling wenig Gedanken machen! Winking smile [Ohoh, jetzt bekomme ich bestimmt unfreundliche Mails, aber let’s face it: quick and dirty neigt nunmal zu beidem Verhalten! Smile with tongue out])

 

Debugging: Da ich nicht zu tief ins Debugging einsteigen will, hier nur das prinzipielle Vorgehen, wenn man sich berufen fühlt einer möglichen Ursache tiefer gehend zu Laibe zu rücken:

  1. Attachen des Debuggers an den richtigen (!!) IE Prozess, seit LCIE u.U. etwas umständlich, aber zur Not einfach TabProcGrowth auf 0 setzen
    Wenn es nicht sofort zu reproduzieren ist, dann hilft auch “ADPlus”, bei 64bit OS bitte die 32bit Variante wählen, da sonst nicht die 32bit Prozessinterna, sondern nur die 64er zu sehen sind, das gilt auch für die Wahl des Debuggers (Windbg)
  2. Je nach Problem z.B. mittels !runaway die “Laufleistung” der einzelnen Threads monitoren und sich den “running wild” Thread herauspicken und über den Stack herausfinden, welches Modul verantwortlich ist; oder über die Analyse der Waitstates herausfinden, welcher Thread den Rest blockiert. Bei “reagiert nicht” ist ein guter Start übrigens Thread 0! Winking smile

Für tiefergehendes Troubleshooting von Addons, bzw. abstürzenden IEs bitte den Support kontaktieren!

 

Zurück zur Übersicht der Blogserie

 

Bis zum nächsten Post

Der Computer ist eine logische Maschine; das ist seine Stärke; aber es setzt ihm auch Grenzen.
P.F. Drucker

-Stephanus