Hi,

Am Samstag, 2. Februar 2008 19:27 schrieb Micha Lenk:
> Bei mir führt das Ausführen von ktoblzcheck mit gültiger BLZ und
> Kontonummer zu einem Segfault, wenn ktoblzcheck aus Version 1.11 oder
> Version 1.14 gebaut ist, die shared library aber aus Version 1.16 gebaut
> ist.

komisch, komisch. Leider weiß ich hier auch nicht weiter. Ich würde schon ein 
libktoblzcheck mit debug-Info brauchen, damit im backtrace wenigstens eine 
Zeilennummer vom Aufruf AccountNumberCheck::AccountNumberCheck () steht - 
ohne weitere Angaben kann ich nicht sagen, ob das eventuell ein 
Programmfehler sein könnte oder tatsächlich ein linking-Problem.

> (gdb) backtrace
> #0  0xb7e4b31f in std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >::basic_string () from /usr/lib/libstdc++.so.6
> #1  0xb7eac6dc in AccountNumberCheck::AccountNumberCheck () from
> /usr/lib/libktoblzcheck.so.1
> #2  0x0804b7eb in main (argc=Cannot access memory at address 0x47a4b368
> ) at ktoblzcheck.cc:166

> Wenn ktoblzcheck und shared library aus der selben Version (1.16) gebaut
> sind, kommt kein Segfault.
>
> Wenn ich das Konzept mit den SONAMEs richtig verstanden habe, dürfte es
> ja eigentlich nicht zu diesem Segfault kommen, wenn ldd alle dynamischen
> Bibliotheken findet. Kann es sein, dass bei der Bibliothek mal der
> SONAME erhöht werden müsste?

Bezüglich SONAME hab ich mich an die libtool-Doku-Vorschläge gehalten. 
Dementsprechend bleibt der major SONAME unverändert, solange keine der 
existierenden Funktionsaufrufe rausgenommen oder verändert worden sind. Nu 
ist mir nicht vollständig klar, wie sich Änderungen von C++-Klassen hier 
auswirken, aber da alle Konstruktoren/Destruktoren normale Funktionen sind 
(d.h. nicht-inline), hab ich das IMHO hier auch erfüllt. Also laut meinem 
Verständnis von SONAME ist das mit der Nummer 1 noch okay und von dort hätte 
kein segfault kommen dürfen.

Aber zum weiteren Überprüfen müsste man vom backtrace oben genauer wissen, an 
welcher Stelle im Konstruktor der Aufruf des std::string-Konstruktors kommt, 
der zum crash führt.

Gruß

Christian

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Aqbanking-devel mailing list
Aqbanking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aqbanking-devel

Reply via email to