knauthe hat geschrieben:Frage: wo setzt man bei der Fehlersuche denn an?
oftmals hilft es schon diese Programme aus einem Terminal zu starten und dort auf etwaige Fehlermeldungen zu achten.
wenn dort keine Fehlermeldungen erscheinen, oder unverständlich sind, kann versucht werden über "strace" herauszufinden, was das Programm kurz vor dem Absturz so angestellt hat. Folgefehler, die wegen mangelhafter Fehlerbehandlung ausgelöst wurden, können damit oftmals aufgespürt werden und durch Beseitigung der eigentlichen Fehlerursache vermieden werden.
Erste Wahl ist aber das Auslesen der sogenannten Backtrace Information, entweder aus einem Coredump, oder durch starten des Programms innerhalb eines Debuggers, oder duch verbinden des Debuggers mit einer Prozeßid.
In deinem Fall wird dies mit folgenden Schritten am einfachsten gehen:
Code: Alles auswählen
gms@gms1:$ ulimit -c unlimited # dadurch können coredumps erzeugt werden, defaultmäßig ist dieses Limit auf 0 gesetzt
gms@gms1:$firefox # das zu untersuchende Programm aufrufen
gms@gms1:$gdb /usr/lib/mozilla-firefox/firefox-bin core # den Debugger aufrufen und Programm und coredump-Datei übergeben
(gdb)bt
(gdb)q
Mit dem Kommando bt solltest du den Backtrace betrachten können. Mit den Funktionsnamen die da auf dem Stack liegen kannst du vielleicht selber nichts anfangen, der Paketmaintainer bzw ein Entwicker zumeist aber sehr viel.
Gruß
gms