03.09.2016 Aufrufe

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.

SPECIAL RETTEN & REPARIEREN<br />

Software-Fehler<br />

Programme mit Problemen<br />

Die Installation oder die Kompilation hat geklappt, doch das Programm will nicht<br />

laufen oder stürzt im Betrieb ab. Der folgende Beitrag zeigt Methoden, den Ursachen<br />

von Programmfehlern auf die Spur zu kommen.<br />

Von David Wolski<br />

Linux-Systeme, hinter welchen<br />

eine der großen und gut gepflegten<br />

Distributionen steht, neigen<br />

selten zu Abstürzen und Programmfehlern.<br />

Verlässt man jedoch<br />

die ausgetretenen Pfade und installiert<br />

Programmpakete aus inoffiziellen<br />

Quellen wie PPAs, gibt es immer wieder<br />

unerwartete Probleme. Auch jenseits<br />

aufwendiger Debugging-Methoden<br />

gibt es Mittel, die Ursachen hinter<br />

Abstürzen und streikenden Programmen<br />

zu finden.<br />

Terminal: Blick hinter die<br />

Kulissen<br />

Das wichtigste Tool zum Aufspüren<br />

von Fehlerquellen bleibt das Terminal.<br />

Script-Interpreter und Programme unter<br />

Unix-Systemen öffnen beim Start<br />

üblicherweise die drei Datenströme<br />

„stdin“ für die Eingabe, „stdout“ für<br />

<strong>Ausgabe</strong>n und „stderr“ für eventuelle<br />

Fehlermeldungen. Diese Aufteilung ist<br />

von C und C++ standardisiert, und so<br />

folgen auch Python, Perl und Java diesem<br />

Schema. Um die <strong>Ausgabe</strong>n von<br />

„stdout“ und „stderr“ mit zu sehen,<br />

müssen Sie ein Programm oder Script<br />

über ein geöffnetes Terminal-Fenster<br />

ausführen, das dann zur <strong>Ausgabe</strong> der<br />

Programmmeldungen dient. Ein Beispiel:<br />

Den Media-Player VLC starten<br />

Sie im Terminal mit der Eingabe von<br />

vlc<br />

und sehen dann Startmeldungen und<br />

mögliche Fehler.<br />

Tipp: Wenn Sie sich nicht sicher sind,<br />

wie der Programmname einer installierten<br />

Software lautet, die Sie normalerweise<br />

über die Desktop-Oberfläche<br />

ausführen, so sehen Sie sich die Verknüpfung<br />

an. Öffnen Sie dazu in einem<br />

Dateimanager wie Nautilus oder Dolphin<br />

die Verzeichnisse „/usr/share/applications“<br />

sowie „/usr/local/share/applications“.<br />

Hier finden Sie die<br />

Programmverknüpfungen für alle grafischen<br />

Oberflächen in Form von<br />

.desktop-Dateien. Nach einem Rechtsklick<br />

finden Sie in den „Eigenschaften“<br />

im Feld „Befehl“ den zugrunde liegenden<br />

Programmaufruf samt Parameter.<br />

Sonderfall: Binaries im Home-<br />

Verzeichnis<br />

Binaries, die manuell kompiliert oder<br />

heruntergeladen wurden und im<br />

Home-Verzeichnis oder in einem Unterordner<br />

von „/opt“ liegen, führen Sie<br />

auf andere Weise aus: Gehen Sie im<br />

Terminal in das Verzeichnis mit der<br />

Programmdatei und starten Sie diese<br />

mit dem Aufruf<br />

./[programm]<br />

wobei der Platzhalter „[programm]“<br />

für den tatsächlichen Namen der ausführbaren<br />

Datei steht. Der vorangestellte<br />

Punkt und Schrägstrich ist eine<br />

absolute Pfadangabe und eine nötige<br />

Voraussetzung unter Linux. Diese<br />

Konvention sorgt dafür, dass nicht versehentlich<br />

ein anderes, gleichnamiges<br />

Programm gestartet wird, das an einer<br />

anderen Stelle im System in der Pfadvariablen<br />

liegt.<br />

Fehlermeldungen: Interpretation<br />

und Recherche<br />

Die angezeigten Fehlermeldungen<br />

eines Programms, Scripts oder einer<br />

Java-Anwendung liefern die wichtigsten<br />

Hinweise auf die Problemursache,<br />

verlangen aber nach der richtigen<br />

Interpretation. Es gibt typische wiederkehrende<br />

Fehlerbilder.<br />

Fehlende Bibliotheken: Bei Programmen,<br />

die aus Scripts aller Art aufgebaut<br />

sind, verursachen fehlende<br />

Script-Bibliotheken gerne Abstürze sofort<br />

nach dem Start. Gerade Pythonund<br />

Perl-Scripts mit grafischer Oberfläche<br />

bauen meist auf einer größeren<br />

38 LinuxWelt 5/<strong>2015</strong>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!