Crash in dialog_file_access.c (was Re: Trouble compiling)

Sebastian Held sebastian.held at gmx.de
Sun Apr 5 05:40:31 EDT 2009


Great - with dubbing symbols, the app does not crash anymore.
This certainly has to do with dangling pointers uninitialized vars, ...
valgrind will be your friend, but I cannot get gnucash to run under 
supervision of valgrind. It aborts with SIGABRT in the startup phase.

The save as function needs to be analyzed carefully.

Sebastian

Am Sonntag, 5. April 2009 10:46:33 schrieb Sebastian Held:
> Finally I got my suse box to compile trunk, and voila:
> trunk (rev18013) crashes even on linux,  but not the first time you open
> save as...
> Here is how to reproduce the crash:
> - trigger save as
> - press cancel
> - trigger save as again -> crashes
>
> I'm currently recompiling trunk with debuging symbols enabled to get a
> meaningful backtrace.
>
> Sebastian
>
> Am Sonntag, 5. April 2009 00:40:56 schrieb Phil Longstaff:
> > Because it's a variable on the stack so its value is undefined before it
> > is set.
> >
> > Phil
> >
> > On April 4, 2009 05:34:39 pm David Reiser wrote:
> > > So even though I have 3 dbd files in the location specified in
> > > configure with --with-dbi-dbd-dir=, my list is still null because
> > > gnucash hasn't asked for the registered backends yet? If so, why would
> > > Sebastian's example show a non-null list with a breakpoint at the same
> > > location?
> > >
> > > Dave
> > >
> > > On Apr 4, 2009, at 4:38 PM, Phil Longstaff wrote:
> > > > List being null isn't the problem.
> > > >
> > > > "list" isn't used until after that point in the code (it asks qof
> > > > for the list of registered backends and doesn't add combobox entries
> > > > for "sqlite3", "mysql" or "pgsql" if there isn't a registered
> > > > backend, and the libdbi backend doesn't register a backend if the
> > > > dbd file isn't present).
> > > >
> > > >
> > > > ________________________________
> > > > From: David Reiser <dbreiser at earthlink.net>
> > > > To: Phil Longstaff <plongstaff at rogers.com>
> > > > Cc: Sebastian Held <sebastian.held at gmx.de>; Gnucash list
> > > > <gnucash-devel at lists.gnucash.org
> > > >
> > > > Sent: Saturday, April 4, 2009 4:18:49 PM
> > > > Subject: Re: Crash in dialog_file_access.c (was Re: Trouble
> > > > compiling)
> > > >
> > > >
> > > >
> > > > [...]________________________________
> > > >
> > > > From: Sebastian Held <sebastian.held at gmx.de>
> > > >
> > > > To: Phil Longstaff <plongstaff at rogers.com>
> > > >
> > > > Cc: David Reiser <dbreiser at earthlink.net>; Derek Atkins
> > > > <warlord at MIT.EDU
> > > >
> > > > >; Gnucash list <gnucash-devel at lists.gnucash.org>
> > > >
> > > > Sent: Thursday, April 2, 2009 3:19:10 PM
> > > >
> > > > Subject: Re: Trouble compiling
> > > >
> > > >
> > > > Same (rev18012) here on windows:
> > > >
> > > >
> > > > 63A4A37E  libgobject-2.0-0.dll:63A4A37E  g_object_connect
> > > >
> > > > 64F0BAE3  libgncmod-gnome-utils.dll:64F0BAE3  gnc_ui_file_access
> > > >
> > > > dialog-file-access.c:234
> > > >
> > > > 64F0BC72  libgncmod-gnome-utils.dll:64F0BC72
> > > >
> > > > gnc_ui_file_access_for_save_as  dialog-file-access.c:275
> > > >
> > > > 6E36706F  libgnc-gnome-0.dll:6E36706F
> > > >
> > > > gnc_main_window_cmd_file_save_as  gnc-plugin-basic-commands.c:393
> > > >
> > > >
> > > > (gdb) break dialog-file-access.c:234
> > > >
> > > > ...
> > > >
> > > > (gdb) list 234
> > > >
> > > > 234             g_object_connect( G_OBJECT(faw->cb_uri_type),
> > > >
> > > > "signal::changed", cb_uri_type_changed_cb, NULL );
> > > >
> > > > (gdb) info local
> > > >
> > > > faw = (FileAccessWindow *) 0x1e3a6c0
> > > >
> > > > xml = (GladeXML *) 0x16aae00
> > > >
> > > > box = (GtkWidget *) 0x65c41273
> > > >
> > > > ds_node = (GList *) 0x1296850
> > > >
> > > > op = (GtkButton *) 0x3eb4f60
> > > >
> > > > align = (GtkWidget *) 0x3eafd68
> > > >
> > > > fileChooser = (GtkFileChooserWidget *) 0x3ec4360
> > > >
> > > > fileChooserAction = GTK_FILE_CHOOSER_ACTION_SAVE
> > > >
> > > > list = (GList *) 0x1d5c7a0
> > > >
> > > > node = (GList *) 0x22f318
> > > >
> > > > uri_type_container = (GtkWidget *) 0x3e9f918
> > > >
> > > > __PRETTY_FUNCTION__ = "gnc_ui_file_access"
> > > >
> > > > (gdb) p *faw
> > > >
> > > > $2 = {type = 1, dialog = 0x3ec7008, frame_file = 0x3eafd00,
> > > >
> > > > frame_database = 0x3eafb60, fileChooser = 0x3ec4360,
> > > >
> > > > cb_uri_type = 0x3ed7010, tf_host = 0x3eaa0c0, tf_database =
> > > >
> > > > 0x3eaa170,
> > > >
> > > > tf_username = 0x3eaa220, tf_password = 0x3eaa2d0}
> > > >
> > > > (gdb) p cb_uri_type_changed_cb
> > > >
> > > > $3 = {void (GtkComboBox *)} 0x64f0b688 <cb_uri_type_changed_cb>
> > > >
> > > >
> > > > From gdb in my crash, I get:
> > > >
> > > > Breakpoint 1, gnc_ui_file_access (type=1) at dialog-file-access.c:234
> > > > 234g_object_connect( G_OBJECT(faw->cb_uri_type), "signal::changed",
> > > > cb_uri_type_changed_cb, NULL );
> > > > (gdb) info local
> > > > faw = (FileAccessWindow *) 0x5077650
> > > > xml = (GladeXML *) 0x59d2c48
> > > > box = (GtkWidget *) 0x1b1f7d0
> > > > ds_node = (GList *) 0x1897e68
> > > > op = (GtkButton *) 0x5c09078
> > > > align = (GtkWidget *) 0x5c0a958
> > > > fileChooser = (GtkFileChooserWidget *) 0x29b4110
> > > > fileChooserAction = GTK_FILE_CHOOSER_ACTION_SAVE
> > > > list = (GList *) 0x0
> > > > node = (GList *) 0xbfffd800
> > > > uri_type_container = (GtkWidget *) 0x5c060d8
> > > > __PRETTY_FUNCTION__ = "gnc_ui_file_access"
> > > >
> > > >
> > > > list is NULL, so that's probably the cause of my crash. Any
> > > > suggestions on changes I can try to work on the lack of "list"?
> > > >
> > > > I have all three libdbi drivers installed, and configure reports
> > > > that gnucash is configured for the dbi backend.
> > > > Dave
> > > >
> > > > --
> > > > David Reiser
> > > > dbreiser at earthlink.net
> > > > _______________________________________________
> > > > gnucash-devel mailing list
> > > > gnucash-devel at gnucash.org
> > > > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> > >
> > > --
> > > David Reiser
> > > dbreiser at earthlink.net
> >
> > _______________________________________________
> > gnucash-devel mailing list
> > gnucash-devel at gnucash.org
> > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel




More information about the gnucash-devel mailing list