Ausgabe_LW_2015-05
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Software-Fehler<br />
RETTEN & REPARIEREN SPECIAL<br />
Zahl von Bibliotheken (Modulen) auf.<br />
Es ist die Aufgabe des Paket-Maintainers<br />
einer Distribution oder bei inoffiziellen<br />
Paketen die des Entwicklers, die<br />
benötigten Komponenten als Abhängigkeiten<br />
zu referenzieren, damit der<br />
Paketmanager diese automatisch mit<br />
installiert. Das gelingt nicht allen Entwicklern,<br />
und sogar bei offiziellen Paketen<br />
kann es passieren, dass erst noch<br />
andere Abhängigkeiten manuell nachinstalliert<br />
werden müssen. In diesem<br />
Fall wird sich der Script-Interpreter<br />
über eine ungültige Methode oder über<br />
ein nicht gefundenes Modul beschweren.<br />
Ein Merkmal dieser Fehler ist die<br />
Reproduzierbarkeit bei jedem Aufruf.<br />
Zwar ist das Problem meist recht leicht<br />
mit dem Nachrüsten eines Pakets erledigt,<br />
jedoch ist der Paketname nicht<br />
aus der Fehlermeldung ersichtlich, sondern<br />
lediglich der Methoden- oder<br />
Modulname. Der erfolgversprechende<br />
Lösungsweg ist eine Suche im Web mit<br />
dem Wortlaut der Fehlermeldung. Bei<br />
großen Distributionen wie Debian,<br />
Ubuntu, Mint, Fedora und Arch ist es<br />
wahrscheinlich, dass bereits andere<br />
Nutzer auf die gleichen Schwierigkeiten<br />
gestoßen sind. Am besten ist<br />
man mit den Online-Communities beraten,<br />
die mit der eingesetzten Linux-<br />
Distribution verknüpft sind, wobei die<br />
englischsprachigen Sites aufgrund der<br />
höheren Zahl der Nutzer mehr Informationen<br />
bieten. Ebenfalls eine gute<br />
Anlaufstelle sind Frage-Antwort-Foren<br />
wie http://unix.stackexchange.com.<br />
Segmentation Fault: Verabschiedet<br />
sich ein Programm mit der Meldung<br />
„Segfault“, so wurde es nach einem<br />
Speicherzugriffsfehler vom Kernel beendet.<br />
Der Auslöser kann schlicht ein<br />
Bug sein, und in diesem Fall wird sich<br />
der Absturz bei jedem Aufruf reproduzieren<br />
lassen. Treten Segfault-Meldungen<br />
ohne ein festes Muster aus, ist<br />
dies jedoch ein Hinweis auf ein Hardware-Problem.<br />
Fehlerhafte Speicherbausteine oder<br />
zu heiß gelaufene Prozessoren machen<br />
sich ebenfalls in spontanen Segfaults<br />
bemerkbar, die dann aber nicht exakt<br />
reproduzierbar sind. Um Hardware als<br />
Auf grafischer Oberfläche verraten Programme wenig über Fehlerursachen. Der Aufruf über<br />
das Terminal (hier der VLC) präsentiert Details über Probleme und Absturzursachen.<br />
Typische Python-Fehlermeldung: Viele Programme für den Linux-Desktop sind in Python<br />
geschrieben. In diesem Beispiel fehlt eine Bibliothek für die Methode „souphttpsrc“.<br />
Ursache für dieses Fehlerbild auszuschließen,<br />
empfiehlt sich der Einsatz<br />
des Speichertestprogramms Memtest86+<br />
5.01 (Open Source, Download<br />
der ISO-Datei unter www.memtest.<br />
org, auch unter „Extras und Tools“<br />
bootfähig auf Heft-DVD). Sobald Sie<br />
Memtest86+ starten, be ginnt die Überprüfung<br />
der Speicherbausteine.<br />
Lassen Sie die Tests mehrere Durchgänge<br />
absolvieren, die unter „Pass“<br />
angegeben sind. Je nach eingebautem<br />
Speicher müssen Sie einige Stunden für<br />
die Diagnose einplanen. Sie können<br />
dann aber sicher sein, dass die Tests<br />
ausführlich genug sind, um die meisten<br />
Fehler zu finden.<br />
Treiber- und Gerätefehler: Stürzen<br />
Programme ab, die bestimmte Merkmale<br />
der Hardware nutzen, etwa Open<br />
GL für die Grafikausgabe, oder einen<br />
Netzwerkchip, dann liefert ein Blick in<br />
die Kernel-Meldungen mehr Informationen.<br />
Der Befehl<br />
dmesg -T<br />
zeigt alle Meldungen der Kernel-Logfiles<br />
mit Zeitstempel an. Hier finden Sie<br />
auch Fehlermeldungen und Warnhinweise<br />
zu allen Geräten und Treibern.<br />
Die Eingabe<br />
dmesg -T -l err<br />
reduziert die <strong>Ausgabe</strong> auf Fehler, und<br />
dmesg -T -l warn<br />
listet nur Warnhinweise. Zahlreiche<br />
normale Meldungen, wie sie der Kernel<br />
etwa für die Initialisierung von<br />
Geräten protokolliert, werden dann<br />
weggefiltert.<br />
●<br />
LinuxWelt 5/<strong>2015</strong><br />
39