Absturz HBCI-Einrichtung (war: [gnucash-de] gnucash-1.8.4)
Christian Stimming
stimming at tuhh.de
Don Jun 5 10:27:49 CDT 2003
Falk Pauser schrieb:
>>Genaueres debuggen würde jetzt nur noch im "gdb" helfen. Aufruf, wie
>>auch in HACKING ganz unten genannt, folgendermaßen:
>>
>>% gnucash-env gdb /usr/bin/guile
>>[gdb bla bla bla]
>>% gdb> run -e main -s /usr/local/libexec/overrides/gnucash
>>oder halt anstelle /usr/local das jeweilige prefix von gnucash
>>einsetzen. Das ist dann *sehr* langsam, aber wenn es an die Stelle des
>>Absturzes kommt, müsstest du einen backtrace kriegen.
>
>
> so, jetzt hab ich mir den gdb-5.3 halt auch noch gebaut - allerdings
> komme ich nicht dazu, gnucash via gdb zum laufen zu bringen. vielleicht
> kannst du mir da nen heissten tip geben (hab vorher noch nie mit gdb
> gearbeitet) - gnucash liegt bei mir unter "/opt/gnome-1.4/bin/gnucash".
> libexec unter "/usr" - was hat es mit libexec auf sich? ich dachte erst
> das waere auch teil des gdb - aber es ist einfach nur ein verzeichnis??
Es ist wichtig zu wissen wie das Installtions-"prefix" von gnucash
lautet -- wenn du bei gnucash "./configure" aufgerufen hast, gibt man
das dort mit "--prefix=/MEIN/PREFIX" an. Bei Dir ist wohl
prefix=/opt/gnome-1.4
Ok, Aufruf von gdb geschieht immer auf der Kommandozeile. Das "zu
debuggende" Programm gibt man als erstes Argument von gdb an, also
theoretisch
% gdb gnucash
Nun ist aber gnucash kein herkömmliches binary, sondern sowas wie ein
Skript, das in der Skript-Sprache "guile" ausgeführt wird. Desweiteren
müssen vor dem Aufruf von gnucash ein paar Umgebungsvariablen gesetzt
werden. Deswegen nun der Aufruf von gdb folgendermaßen:
% gnucash-env gdb guile
Dann meldet sich der gdb mit sein "Copyright bla bla bla"-Nachricht, und
man kann Kommandos für den gdb eingeben, z.B.
gdb> help
Aber nun will man ja das Programm starten. Es wird also mit "run" der
Programmstart ausgelöst und die notwendigen Argumente für den
Skript-Interpreters "guile" mit eingegeben
gdb> run -e main -s /MEIN/PREFIX/libexec/overrides/gnucash
also bei dir wahrscheinlich
gdb> run -e main -s /opt/gnome-1.4/libexec/overrides/gnucash
Dann läuft gnucash (allerdings mit einem *ziemlich* langsamen Start, 1-2
Minuten ist normal), und beim Programmabsturz gibt es im gdb eine Reihe
von tollen Meldungen, welches die letzten Funktionsaufrufe gewesen sind
("backtrace"). Diese Meldungen will ich sehen :-)
Christian