Defekte Programme: So klappt die Reparatur

Software besteht aus binären Programmdateien, die bitgenau intakt sein müssen, ferner aus variablen Konfigurationsdaten, die als Dateien oder Registry-Schlüssel vorliegen. Fehler sind hier wie dort möglich – und meist lösbar.

Die Symptome defekter Software sind so vielfältig wie die Software selbst. Daher kann es an dieser Stelle nur darum gehen, prinzipielle Strategien aufzuzeigen. Speziellere Anleitungen zu prominenter Software finden Sie zum Explorer , zu MS Office und zu Mail. Grundsätzlich sollte Ihnen immer bewusst sein, dass eine Reparatur von Programmen ohne Aussicht auf Erfolg ist, wenn die Hardware krankt.

Die Ursachen von Software-Fehlern müssen daher eindeutig sein: Hardware-bedingte Abstürze treten vermutlich in einer häufig genutzten Software weitaus öfter auf als in selten verwendeten Programmen. Das beweist allerdings nicht, dass diese Software defekt ist. Unmissverständliche Anlässe zur Reparatur von Software sind reproduzierbare Startfehler (Start scheitert oder produziert Fehlermeldungen) sowie reproduzierbare Abstürze bei derselben Programmfunktion.

Reparaturinstallation oder gründliche Neuinstallation

Unabhängig von Größe und Bedeutung eines Software-Produkts bieten einige Anwendungsprogramme eine Reparatur an, um die Binärdateien neu aus der Installationsquelle zu beziehen. Dies gilt für die Programme, die unter „Systemsteuerung -> Programme deinstallieren“ neben „Deinstallieren“ auch noch ein „Reparieren“ oder „Ändern“ anzeigen.

Benutzerspezifische Konfigurationsdateien und Registry-Einträge bleiben dabei erhalten (sofern nicht in den Defaults enthalten), so dass die hier verorteten Probleme dadurch eventuell nicht gelöst werden. Wenn Sie eine Software definitiv sauber neu installieren wollen, gehen Sie so vor:
1. Schritt: Deinstallieren Sie das Programm unter „Systemsteuerung -> Programme deinstallieren“. Danach löschen Sie alles, was unter folgenden Pfaden von der Software verblieben ist:

• \Program Files\[Software]
• \Program Files (x86)\[Software]
• \Program Files\Common Files\[Software]
• \Program Files (x86)\Common Files\[Software]
• \ProgramData\[Software]

2. Schritt: Alle benutzerspezifischen Dateireste finden Sie unter „\Users\[Konto]\App-Data\Roaming\[Software]“. Bei mehreren Benutzerkonten sind diese einzeln zu säubern.

3. Schritt: Im Windows-Registrierungseditor (Regedit.exe) löschen Sie die folgenden Schlüssel:

• Hkey_Current_User\Software\[Hersteller]\ [Software]
• Hkey_Local_Machine\Software\[Hersteller]\ [Software]

Einige harmlose Reste können insbesondere unter „Hkey_Classes_Root“ noch verbleiben, welche für die Explorer-Integration sorgen. Am einfachsten finden Sie diese über „Bearbeiten -> Suchen“ und die nachfolgende Eingabe des echten Programmnamens (also nicht etwa „word“, sondern „winword.exe“).

Harmlose Startprobleme von Programmen umgehen

Vor allem ältere Software kann an relativ einfachen Hindernissen scheitern. Windowssieht für die banalsten Probleme einen Workaround vor, der sich in jede Verknüpfungsdatei einbauen lässt: Klicken Sie im Startmenü das fragliche Programm rechts an, wonach Sie den Eintrag „Dateipfad öffnen“ wählen. Das führt zur Verknüpfung, die Sie nach Rechtsklick und „Eigenschaften“ und dort unter der Registerkarte „Kompatibilität“ bearbeiten können. Im Dialog oben erscheint die Schaltfläche „Behandeln von Kompatibilitätsproblemen“: Das ist eine automatische Reparaturfunktion, die immer einen Versuch wert ist, allerdings nur dann funktionieren kann, wenn Microsoft die konkreten Probleme des betreffenden Programms bekannt sind. Manuell können Sie in der Verknüpfung unter „Kompatibilitätsmodus“ eine ältere Windows-Version einstellen.

Diese Maßnahme hilft bei älteren (Setup-)Programmen, welche die Windows-Version abfragen und abbrechen, wenn nicht die richtige vorliegt. Die Einstellung behebt keine technischen Probleme und dient nur dazu, das Programm bei seiner Versionsabfrage zu täuschen. Das genügt aber oft, um eine alte Software zum Start zu bewegen. Als weitere Optionen lässt sich bei Darstellungsproblemen für den Start des Programms die Farbtiefe und die Bildschirmauflösung umstellen. Bei Abschluss des Programms kehrt Windows automatisch wieder zum eingestellten Standard zurück.

Detailanalyse mit Windows-Werkzeugen

Nach Eingabe von Zuverlässigkeitsverlauf anzeigen ins Windows-Suchfeld oder unter „Systemsteuerung -> Sicherheit und Wartung -> Wartung“ erscheint „Zuverlässigkeitsverlauf anzeigen“. Das ist zwar nicht der informativste, aber der schnellste Weg, sich die letzten kritischen Fehler anzeigen zu lassen.

Die Zuverlässigkeitsüberwachung ist kein eigenes Programm, sondern Teil der Leistungsüberwachung „Perfmon.exe“ und lässt sich mit dem Schalter perfmon.exe /rel auch direkt aufrufen. „Kritisch“ sind die roten Ereignisse mit Kreuzsymbol. Ein Mausklick darauf zeigt das betroffene Programm an und dazu eine knappe Information wie „Nicht mehr funktionstüchtig“, weitere technische Hilfe gibt es hier aber meistens nicht. Dazu müssen Sie die „Ereignisanzeige“ starten.

Durch Eingabe von Ereignisanzeige in die Suchleiste von Windows 8.1 und 10 öffnen Sie das Ereignisprotokoll. Für die Analyse von Software-Fehlern gehen Sie auf „Windows-Protokolle -> Anwendung“. Um die umfangreiche Liste auf das Wesentliche zu filtern, klicken Sie rechts auf „Benutzerdefinierte Ansicht erstellen“. Markieren Sie im folgenden Fenster nur die Ereignisebenen „Kritisch“ und „Fehler“. Nachdem Sie der Ansicht einen Namen wie „Kritisch“ gegeben und mit „OK“ bestätigt haben, erscheint diese in der Navigationsspalte unter „Benutzerdefinierte Ansichten“ und ein Klick darauf zeigt alle gefilterten Ereignisse.

Sie erhalten dadurch Hinweise auf fehlerhafte Module, auf fehlende Schreibrechte, auf situative Probleme wie Zugriffsfehler aufgrund bereits geöffneter Dateien oder Zeitüberschreitungen bei Server-Abfragen.

Am ehesten zu beheben sind fehlende Schreibrechte. Bei fehlerhaften Modulen kann es helfen, die im Ereignisprotokoll angegebene DLL-Datei durch Umbenennen vorübergehend außer Gefecht zu setzen. Deren Funktionen sind dann zwar nicht benutzbar, aber eventuell auch gar nicht notwendig.

Linux-Programme: Blick hinter die Kulissen

Unter Linux sind die Debug- und Analysemöglichkeiten bei Software-Fehlern direkter: Das wichtigste Tool zum Aufspüren von Fehlerquellen ist das Terminal. Programme öffnen beim Start „stdout“ für Ausgaben und „stderr“ für eventuelle Fehlermeldungen. Um die oft zielführenden Infos von „stdout“ und „stderr“ einzusehen, starten Sie das Programm statt über das Startmenü einfach im Terminal. Nach beispielsweise

vlc

sehen Sie Startmeldungen und mögliche Fehler des Mediaplayers. Falls Sie einen Programmnamen nicht wissen, ermitteln Sie ihn über seine Verknüpfung unter „/usr/share/applications“ sowie „/usr/local/share/applications“. Nach einem Rechtsklick finden Sie in den „Eigenschaften“ im Feld „Befehl“ den maßgeblichen Programmaufruf samt Parameter.

Die Fehlermeldungen zeigen typische wiederkehrende Fehlerbilder: Fehlende Bibliotheken können Abstürze sofort nach dem Start verursachen. Ein Merkmal dieser Fehler ist die Reproduzierbarkeit bei jedem Aufruf und der Erfolg versprechende Lösungsweg ist eine Suche im Internet mit dem Wortlaut der Fehlermeldung laut Terminalfenster-Ausgabe. Hier ist dann meist schnell ermittelt, welches Paket nachinstalliert werden muss.

Verabschiedet sich ein Programm mit der Meldung „Segfault“, so wurde es nach einem Speicherzugriffsfehler vom Kernel beendet. Der Auslöser kann ein Software-Bug sein und ist dann bei jedem Aufruf reproduzierbar. Sporadische Segfaults in unterschiedlichen Situationen sprechen hingegen eher für ein Hardware-Problem (Speicherfehler oder überhitzte CPU).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.