Re: Help in debugging the DirectFB backend - issue reprodicible with X11 but not a crasher





Attilio Fiandrotti wrote:
Carl Worth wrote:

On Thu, 27 Jul 2006 01:06:43 +0200, Attilio Fiandrotti wrote:


I think cairodfb or gdkdfb must previously have corrupted memory somewhere, but i can't detect when nor where: can anyone reproduce this or give me an hint about how to catch it?


Have you tried running the program under valgrind? Something like:


yes, and below is what vg tells me.
From a previous test using gdb (see log under vg's log) i noticed the stack was messed up, and going back from gtk_target_table_free() i found the gtk_text_layout_set_buffer() problem i reported about. Note i often (but not always) get other strange crashes, like when i resize a window and the gtk app was linked using efence (i think efence unveils silent memory corruptions)

<snip>

rplying to myself, i report an experiment i did with GTK+ from CVS using X11 backend and running GIMP as a test application. As you can see, below tk_text_buffer_free_target_lists() passes "8" as a second parameter to gtk_target_table_free(), but in the stack i fing "141806480". Moreover, the i counter in gtk_target_table_free() is decremented (from 8 to 0) instead of being incremented from 0 to 8. This looks strange to me: is there any explanation for this ? could this be a crasher bug with DFB and a silent bug with X11 ? can anyone reproduce this ?

thanks

Attilio

Breakpoint 2, 0x402bef06 in IA__gtk_target_table_free (targets=0x873cb90, n_targets=141806480) at gtkselection.c:615
615     {
(gdb) bt 4
#0 0x402bef06 in IA__gtk_target_table_free (targets=0x873cb90, n_targets=141806480) at gtkselection.c:615 #1 0x402fe425 in gtk_text_buffer_free_target_lists (buffer=0x873cb90) at gtktextbuffer.c:3927 #2 0x402f8bc7 in gtk_text_buffer_finalize (object=0x8c18150) at gtktextbuffer.c:592
#3  0x405f0eee in IA__g_object_unref (_object=0x8c18150) at gobject.c:1762
(More stack frames follow...)
(gdb) f 1
#1 0x402fe425 in gtk_text_buffer_free_target_lists (buffer=0x873cb90) at gtktextbuffer.c:3927
3927          gtk_target_table_free (priv->paste_target_entries,
(gdb) l -
3917                                 priv->n_copy_target_entries);
3918          priv->copy_target_entries = NULL;
3919          priv->n_copy_target_entries = 0;
3920        }
3921
3922      if (priv->paste_target_list)
3923        {
3924          gtk_target_list_unref (priv->paste_target_list);
3925          priv->paste_target_list = NULL;
3926
(gdb) l +
3927          gtk_target_table_free (priv->paste_target_entries,
3928                                 priv->n_paste_target_entries);
3929          priv->paste_target_entries = NULL;
3930          priv->n_paste_target_entries = 0;
3931        }
3932    }
3933
3934    static GtkTargetList *
3935    gtk_text_buffer_get_target_list (GtkTextBuffer   *buffer,
3936                                     gboolean         deserializable,
(gdb) p priv->n_paste_target_entries
$1 = 8



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]