aqbanking5 and ofxdc can crash gnucash trunk

John Ralls jralls at ceridwen.us
Sun Aug 29 01:15:00 EDT 2010


On Aug 28, 2010, at 8:28 PM, David Reiser wrote:

> 
> On Aug 28, 2010, at 10:27 PM, John Ralls wrote:
> 
>> 
>> On Aug 28, 2010, at 5:40 PM, David Reiser wrote:
>>> 
>>> Thank you for the very detailed instructions -- I need that level of guidance.
>>> 
>>> Things looked to be headed in the right direction, but gnucash crashes before I get to the second breakpoint. 
>>> 
>>> If I run gnucash once with a successful aqbanking wizard run to 'prime' the label pump, when I set the breakpoints, I get:
>>> 
>>> (gdb) b abgui.c:245
>>> Breakpoint 1 at 0x1062ffc99: file abgui.c, line 245.
>>> (gdb) b GWEN_Inherit_FindData
>>> Breakpoint 2 at 0x106adf006: file _string.h, line 114.
>>> 
>>> The second breakpoint filename looks a bit weird to me, but I don't have anything else to go on.
>>> 
>>> If I try to set a breakpoint in inherit.c, gdb says there is no such source file. If I leave it as a pending breakpoint, gnucash still crashes before catching the breakpoint -- where the crash is reported at inherit.c:180.
>>> 
>>> The abgui.c breakpoint works fine.
>>> 
>>> Have I done something wrong setting things up?
>> 
>> Did you build gwen for debugging?
> 
> Yes
> 
>> If yes, does gdb whine about not being able to find gwen's symbols during startup?
> 
> No. gdb whines about all the gnome dependencies that weren't compiled with debug enabled, but not gwen or aqbanking.
> 
> Curiously, when I start from a gnucash launch and have to tell gdb to keep both breakpoints as pending, the console stream reports 3 times that the pending breakpoints are resolved, but in two locations:
> 
> Breakpoint 1 at 0x10346dc99: file abgui.c, line 245.
> Pending breakpoint 1 - "abgui.c:245" resolved
> Breakpoint 2 at 0x103553006: file _string.h, line 114.
> Pending breakpoint 2 - "GWEN_Inherit_FindData" resolved
> 
> Breakpoint 1 at 0x10346dc99: file abgui.c, line 245.
> Pending breakpoint 1 - "abgui.c:245" resolved
> Breakpoint 2 at 0x103553006: file _string.h, line 114.
> Pending breakpoint 2 - "GWEN_Inherit_FindData" resolved
> 
> Breakpoint 1 at 0x106c01c99: file abgui.c, line 245.
> Pending breakpoint 1 - "abgui.c:245" resolved
> Breakpoint 2 at 0x1073e1006: file _string.h, line 114.
> Pending breakpoint 2 - "GWEN_Inherit_FindData" resolved
> 
> When the gnucash hits the first breakpoint (after I've already run a successful ofxdc download and then attempt to start the setup wizard), if I just use 'n' at the prompt instead of 'c', I get an assert failure immediately, and the next 'n' gets me to the sigabort.

Interesting. It would appear that you're linking two instances of libaqbanking.dylib (and perhaps libgwenhywfar.dylib too). "info shared" will list all of the dylibs in the image; you can look through the result and see if there are in fact multiple instances and if they point to different files or are merely linked through different paths. Anyway, for some reason, the breakpoint on GWEN_Inherit_FindData isn't attaching to the right place: The function that should be called is (as I wrote earlier) in inherit.c.

Since the breakpoint isn't working, try stepping (use "s" instead of "n") into the macro. Make sure first of all that the abgui.c breakpoint is really stopping at the GWEN_INHERIT_GETDATA line, then step into it . Since the macro is only a single line you should be in GWEN_Inherit_FindData with a single "s".  Once there, you can go back to "n" to watch the loop.

Oh, are you turning off optimization in CFLAGS (-O0)? The optimizer will often screw up symbols and make tracing through code difficult.

Regards,
John Ralls







More information about the gnucash-devel mailing list