[GNC-dev] Debugging for Bug 797236 g_closure_invoke problem

Geert Janssens geert.gnucash at kobaltwit.be
Wed Apr 1 03:37:09 EDT 2020


Hi Chris,

What OS are you using again ?
On linux it's indeed as simple as installing the appropriate -dev (or -devel) packages. On Fedora, 
if you run gnucash once under gdb instead of Eclipse, gdb will tell you which command to run to 
install all missing debug info. It may be more than you need though.

On Windows or Macos I have no idea.

Regards,

Geert

Op woensdag 1 april 2020 06:29:33 CEST schreef Chris Good:
> Hi Devs,
> 
> 
> 
> I'd appreciate some help if possible please.
> 
> 
> 
> In maint, in src/gnucash/gnome/reconcile-view.c
> gnc_reconcile_view_refresh(), now:
> 
> 
> 
> void
> 
> gnc_reconcile_view_refresh (GNCReconcileView *view)
> 
> {
> 
>     GNCQueryView *qview;
> 
>     GtkTreePath *cursor_path=NULL;
> 
>     GtkTreeViewColumn *cursor_col;
> 
> 
> 
>     g_print("Start reconcile-view.c gnc_reconcile_view_refresh()\n");
> 
>     g_return_if_fail (view != NULL);
> 
>     g_return_if_fail (GNC_IS_RECONCILE_VIEW (view));
> 
> 
> 
>     qview = GNC_QUERY_VIEW (view);
> 
>     gtk_tree_view_get_cursor (GTK_TREE_VIEW (qview), &cursor_path,
> &cursor_col);
> 
>     gnc_query_view_refresh (qview);
> 
>     if (cursor_path)
> 
>     {
> 
>                g_print("reconcile-view.c gnc_reconcile_view_refresh() "
> 
>                               "calling gtk_tree_view_scroll_to_cell()\n");
> 
>         gtk_tree_view_scroll_to_cell ( GTK_TREE_VIEW (qview), cursor_path,
> cursor_col, FALSE, 0.0, 0.0);
> 
>                gtk_tree_path_free(cursor_path);
> 
>     }
> 
> 
> 
> I added the call to gtk_tree_view_get_cursor () and the call to
> gtk_tree_view_scroll_to_cell()
> 
> and this fixes the problem of the Reconcile window panel of debit splits
> being repositioned to the first split
> 
> after using the Open button to open the register to add a new transaction.
> 
> 
> 
> However, it doesn't fix the problem if I use the Balance button to
> automatically add a balancing transaction.
> 
> I'm trying to debug in Eclipse using the Balance button, because I can see
> that refresh_handler() is also being called (same as using the Open button)
> but the problem still exists when using the Balance button.
> 
> 
> 
> refresh_handler() calls recnRefresh() calls gnc_reconcile_view_refresh()
> 
> 
> 
> By adding breakpoints in refresh_handler and gnc_reconcile_view_refresh I
> can see that gnc_reconcile_view_refresh() is being called 8 times (4 times
> for each of the debits + credits panel) and only on the 2nd call for the
> debit panel is cursor_path not NULL. I don't understand why only 1 of the 4
> calls for the debit panel has a cursor path?
> 
> Up until now, the panel still displays on the 2nd page of splits where it
> was before the Balance button was used.
> 
> 
> 
> Resuming after the 8th call, the debugger gets: No source available for
> "g_closure_invoke() at (address)"
> 
> and I can only Resume.
> 
> 
> 
> I guess g_closure_invoke() is a gtk3 function and I need to install the gtk3
> dev packages which are not stripped? How do I integrate them into my
> Eclipse build?
> 


More information about the gnucash-devel mailing list