segfaulting xfce4-panel
Oliver Lehmann
oliver at FreeBSD.org
Sun Feb 17 11:48:11 CET 2008
Hi,
recently I've updated my FreeBSD desktop from FreeBSD 6 to FreeBSD 7
which is about to being released in the near future.
I encountered an error with xfce4-panel on amd64 only. When trying the same
on i386 it works. When trying to move an icon around within the panel the
panel segfaults:
DBG[panel-properties.c:380] _set_struts(): all struts are checked and updated
DBG[panel-properties.c:473] panel_resize_function(): old: 1280x50 new: 1280x50
DBG[panel-properties.c:351] _set_struts():
Struts
0 0 50 0
0 0 0 0
1280 2559 0 0
DBG[panel-properties.c:380] _set_struts(): all struts are checked and updated
DBG[panel-dnd.c:124] panel_dnd_set_widget_data(): + set pointer: 83747792
DBG[panel.c:446] _panel_drag_data_received(): + drag data received: 1
DBG[panel-dnd.c:93] panel_dnd_get_plugin_from_data(): + get pointer: 83747792
Segmentation fault (core dumped)
Exit 139
It looks like the returned value is somewhat broken in panel-dnd.c:
GtkWidget *
panel_dnd_get_plugin_from_data (GtkSelectionData *data)
{
glong *n;
n = (glong *)data->data;
DBG (" + get pointer: %ld", *n);
return GTK_WIDGET (GINT_TO_POINTER (*n));
}
Adding debug output around the call of that function in panel.c shows
that the function gets called, but after that nothing gets executed in
panel.c so I guess the function is the cause.
Ideas how to fix this...?
here comes some gdb output:
(gdb)
#0 0x0000000802ffaffc in g_type_check_instance_cast () from /usr/local/lib/libgobject-2.0.so.0
#1 0x000000000040f468 in panel_dnd_get_plugin_from_data (data=0x7fffffffdd60) at panel-dnd.c:95
#2 0x0000000000418f2e in _panel_drag_data_received (widget=0x8055060c0, context=0x8055964e0, x=135, y=16, data=0x7fffffffdd60, info=1, time=654247801, panel=0x804fa4350)
at panel.c:470
#3 0x0000000800d326ed in gtk_marshal_BOOLEAN__VOID () from /usr/local/lib/libgtk-x11-2.0.so.0
#4 0x0000000802fde52e in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
#5 0x0000000802ff225a in g_signal_handler_disconnect () from /usr/local/lib/libgobject-2.0.so.0
#6 0x0000000802ff3c90 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
#7 0x0000000802ff3f8f in g_signal_emit_by_name () from /usr/local/lib/libgobject-2.0.so.0
#8 0x0000000800e56a1b in gtk_drag_finish () from /usr/local/lib/libgtk-x11-2.0.so.0
#9 0x0000000802fde52e in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
#10 0x0000000802ff225a in g_signal_handler_disconnect () from /usr/local/lib/libgobject-2.0.so.0
#11 0x0000000802ff3c90 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
#12 0x0000000802ff3f8f in g_signal_emit_by_name () from /usr/local/lib/libgobject-2.0.so.0
#13 0x0000000800d8ba95 in gtk_target_list_unref () from /usr/local/lib/libgtk-x11-2.0.so.0
#14 0x0000000800d8da2c in gtk_selection_convert () from /usr/local/lib/libgtk-x11-2.0.so.0
#15 0x0000000000418faf in _panel_drag_drop (widget=0x8055060c0, context=0x8055964e0, x=135, y=16, time=654247801, panel=0x804fa4350) at panel.c:531
#16 0x0000000800d34d5c in gtk_marshal_BOOLEAN__VOID () from /usr/local/lib/libgtk-x11-2.0.so.0
#17 0x0000000802fde52e in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
#18 0x0000000802ff225a in g_signal_handler_disconnect () from /usr/local/lib/libgobject-2.0.so.0
#19 0x0000000802ff39c6 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
#20 0x0000000802ff3f8f in g_signal_emit_by_name () from /usr/local/lib/libgobject-2.0.so.0
#21 0x0000000800e564d7 in gtk_drag_finish () from /usr/local/lib/libgtk-x11-2.0.so.0
#22 0x0000000800e5517b in gtk_drag_unhighlight () from /usr/local/lib/libgtk-x11-2.0.so.0
#23 0x0000000800e551b7 in gtk_drag_unhighlight () from /usr/local/lib/libgtk-x11-2.0.so.0
#24 0x0000000800e56795 in gtk_drag_finish () from /usr/local/lib/libgtk-x11-2.0.so.0
#25 0x0000000800d2f8fd in gtk_main_do_event () from /usr/local/lib/libgtk-x11-2.0.so.0
#26 0x00000008011de66c in gdk_add_client_message_filter () from /usr/local/lib/libgdk-x11-2.0.so.0
#27 0x0000000803245943 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.0
#28 0x0000000803248bed in g_main_context_check () from /usr/local/lib/libglib-2.0.so.0
#29 0x0000000803248eb9 in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.0
#30 0x0000000800d2fb52 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.0
#31 0x000000000040d134 in panel_app_run (argc=1, argv=0x7fffffffea88) at panel-app.c:735
#32 0x000000000040c057 in main (argc=1, argv=0x7fffffffea88) at main.c:167
(gdb) up 1
#1 0x000000000040f468 in panel_dnd_get_plugin_from_data (data=0x7fffffffdd60) at panel-dnd.c:95
95 return GTK_WIDGET (GINT_TO_POINTER (*n));
(gdb) print *n
$1 = 83776464
(gdb)
--
Oliver Lehmann
http://www.pofo.de/
http://wishlist.ans-netz.de/
More information about the Xfce4-dev
mailing list