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