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
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to