Hängt sich auf

Programm-Abstürzen in Linux auf die Spur kommen

Die Installation oder die Kompilation hat geklappt, doch das Programm will nicht laufen oder stürzt im Betrieb ab. Der folgende Beitrag zeigt Methoden, den Ursachen von Programmfehlern auf die Spur zu kommen.

Linux-Systeme, hinter welchen eine der großen und gut gepflegten Distributionen steht, neigen selten zu Abstürzen und Programmfehlern. Verlässt man jedoch die ausgetretenen Pfade und installiert Programmpakete aus inoffiziellen Quellen wie PPAs, gibt es immer wieder unerwartete Probleme. Auch jenseits aufwendiger Debugging-Methoden gibt es Mittel, die Ursachen hinter Abstürzen und streikenden Programmen zu finden.

Terminal: Blick hinter die Kulissen von Abstürzen

Das wichtigste Tool zum Aufspüren von Fehlerquellen bleibt das Terminal. Script-Interpreter und Programme unter Unix-Systemen öffnen beim Start üblicherweise die drei Datenströme „stdin“ für die Eingabe, „stdout“ für Ausgaben und „stderr“ für eventuelle Fehlermeldungen. Diese Aufteilung ist von C und C++ standardisiert, und so folgen auch Python, Perl und Java diesem Schema. Um die Ausgaben von „stdout“ und „stderr“ mit zu sehen, müssen Sie ein Programm oder Script über ein geöffnetes Terminal-Fenster ausführen, das dann zur Ausgabe der Programmmeldungen dient. Ein Beispiel: Den Media-Player vlc starten Sie im Terminal mit der Eingabe von

vlc

und sehen dann Startmeldungen und mögliche Fehler.

Tipp: Wenn Sie sich nicht sicher sind, wie der Programmname einer installierten Software lautet, die Sie normalerweise über die Desktop-Oberfläche ausführen, so sehen Sie sich die Verknüpfung an. Öffnen Sie dazu in einem Dateimanager wie Nautilus oder Dolphin die Verzeichnisse „/usr/share/applications“ sowie „/usr/local/share/applications“. Hier finden Sie die Programmverknüpfungen für alle grafischen Oberflächen in Form von .desktop-Dateien. Nach einem Rechtsklick finden Sie in den „Eigenschaften“ im Feld „Befehl“ den zugrunde liegenden Programmaufruf samt Parameter.

Sonderfall: Binaries im Home-Verzeichnis

Binaries, die manuell kompiliert oder heruntergeladen wurden und im Home-Verzeichnis oder in einem Unterordner von „/opt“ liegen, führen Sie auf andere Weise aus: Gehen Sie im Terminal in das Verzeichnis mit der Programmdatei und starten Sie diese mit dem Aufruf

./[programm]

wobei der Platzhalter „[programm]“ für den tatsächlichen Namen der ausführbaren Datei steht. Der vorangestellte Punkt und Schrägstrich ist eine absolute Pfadangabe und eine nötige Voraussetzung unter Linux. Diese Konvention sorgt dafür, dass nicht versehentlich ein anderes, gleichnamiges Programm gestartet wird, das an einer anderen Stelle im System in der Pfadvariablen liegt.