26feb: fresh cvs checkout, still have sigsegv in halscope
$uname -a
Linux shop 2.6.24-16-rtai #1 Sun Apr 13 17:50:16 EEST 2008 i686 GNU/Linux
--------------------------------------------------------------------------
27feb
running with libgtk2.0-0-dbg AND libglib2.0-0-dbg (magic happens)
this backtrace gets all the way back to main()
--------------------------------------------------------------------------
1. start emc
2. start run; start halscope;
3. activate trigger sig to halscope --> sigsegv
(segv on first running after a boot,
this doesn't always happen on subsequent runs)
--------------------------------------------------------------------------
(gdb) run
Starting program: /home/emc_cvs/head/bin/halscope
[Thread debugging using libthread_db enabled]
[New Thread 0xb74696c0 (LWP 8755)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb74696c0 (LWP 8755)]
widget_add_child_draw_rectangle (widget=0x9cac100b, rect=0xbf8e0fc0)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3418
3418 /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c: No such file or directory.
in /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c
(gdb) bt
#0 widget_add_child_draw_rectangle (widget=0x9cac100b, rect=0xbf8e0fc0)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3418
#1 0xb7c691e1 in gtk_box_forall (container=0x807a200, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e0fc0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbox.c:809
#2 0xb7caaa87 in IA__gtk_container_forall (container=0x807a200,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e0fc0)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#3 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x807a200,
rect=0xbf8e0fc0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#4 0xb7e68c01 in widget_add_child_draw_rectangle (widget=0x9cac100b,
rect=0xbf8e1070) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3422
#5 0xb7cfef23 in gtk_frame_forall (container=0x807ba10, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1070)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkframe.c:300
#6 0xb7caaa87 in IA__gtk_container_forall (container=0x807ba10,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1070)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#7 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x807ba10,
rect=0xbf8e1070) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#8 0xb7e68c01 in widget_add_child_draw_rectangle (widget=0x9cac100b,
rect=0xbf8e1120) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3422
#9 0xb7c691b0 in gtk_box_forall (container=0x807a160, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1120) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbox.c:799
#10 0xb7caaa87 in IA__gtk_container_forall (container=0x807a160,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1120)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#11 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x807a160,
rect=0xbf8e1120) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#12 0xb7e68c01 in widget_add_child_draw_rectangle (widget=0x9cac100b,
rect=0xbf8e11d0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3422
#13 0xb7c691b0 in gtk_box_forall (container=0x8075388, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e11d0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbox.c:799
#14 0xb7caaa87 in IA__gtk_container_forall (container=0x8075388,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e11d0)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#15 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x8075388,
rect=0xbf8e11d0) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#16 0xb7e68c01 in widget_add_child_draw_rectangle (widget=0x9cac100b,
rect=0xbf8e1280) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3422
#17 0xb7c691b0 in gtk_box_forall (container=0x8075298, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1280) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbox.c:799
#18 0xb7caaa87 in IA__gtk_container_forall (container=0x8075298,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1280)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#19 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x8075298,
rect=0xbf8e1280) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#20 0xb7e68c01 in widget_add_child_draw_rectangle (widget=0x9cac100b,
rect=0xbf8e1330) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3422
#21 0xb7c691b0 in gtk_box_forall (container=0x8075248, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1330) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbox.c:799
#22 0xb7caaa87 in IA__gtk_container_forall (container=0x8075248,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e1330)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#23 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x8075248,
rect=0xbf8e1330) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#24 0xb7e68c01 in widget_add_child_draw_rectangle (widget=0x9cac100b,
rect=0xbf8e13dc) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3422
#25 0xb7c691b0 in gtk_box_forall (container=0x80751a8, include_internals=1,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e13dc) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbox.c:799
#26 0xb7caaa87 in IA__gtk_container_forall (container=0x80751a8,
callback=0xb7e68bc0 <widget_add_child_draw_rectangle>,
callback_data=0xbf8e13dc)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#27 0xb7e68ae8 in gtk_widget_get_draw_rectangle (widget=0x80751a8,
rect=0xbf8e13dc) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3450
#28 0xb7e6bd9e in IA__gtk_widget_region_intersect (widget=0x80751a8,
region=0x81d0c60) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:4938
#29 0xb7ca9f87 in IA__gtk_container_propagate_expose (container=0x8088000,
child=0x80751a8, event=0xbf8e1b04)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:2651
#30 0xb7caa061 in gtk_container_expose_child (child=0x80751a8,
client_data=0xbf8e14a8)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:2543
#31 0xb7c6521f in gtk_bin_forall (container=0x8088000, include_internals=1,
callback=0xbf8e0fc0, callback_data=0xbf8e14a8)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkbin.c:133
#32 0xb7caaa87 in IA__gtk_container_forall (container=0x8088000,
callback=0xb7caa040 <gtk_container_expose_child>, callback_data=0xbf8e14a8)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:1453
#33 0xb7caab41 in gtk_container_expose (widget=0x8088000, event=0xbf8e1b04)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkcontainer.c:2566
#34 0xb7e7edd1 in gtk_window_expose (widget=0x8088000, event=0xbf8e1b04)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwindow.c:6358
#35 0xb7d488d4 in _gtk_marshal_BOOLEAN__BOXED (closure=0x80825e8,
return_value=0xbf8e1730, n_param_values=2, param_values=0xbf8e1814,
invocation_hint=0xbf8e171c, marshal_data=0xb7e7ed90)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmarshalers.c:84
#36 0xb7a6a069 in g_type_class_meta_marshal (closure=0x80825e8,
return_value=0xbf8e1730, n_param_values=2, param_values=0xbf8e1814,
invocation_hint=0xbf8e171c, marshal_data=0xc8)
at /build/buildd/glib2.0-2.16.6/gobject/gclosure.c:567
#37 0xb7a6b749 in IA__g_closure_invoke (closure=0x80825e8,
return_value=0xbf8e1730, n_param_values=2, param_values=0xbf8e1814,
invocation_hint=0xbf8e171c)
at /build/buildd/glib2.0-2.16.6/gobject/gclosure.c:490
#38 0xb7a8010a in signal_emit_unlocked_R (node=0x8082ac0, detail=0,
instance=0x8088000, emission_return=0xbf8e19d4,
instance_and_params=0xbf8e1814)
at /build/buildd/glib2.0-2.16.6/gobject/gsignal.c:2478
#39 0xb7a81937 in IA__g_signal_emit_valist (instance=0x8088000, signal_id=37,
detail=0, var_args=0xbf8e1a50 "h\032\216\004\033\216")
at /build/buildd/glib2.0-2.16.6/gobject/gsignal.c:2209
#40 0xb7a81f59 in IA__g_signal_emit (instance=0x8088000, signal_id=37,
detail=0) at /build/buildd/glib2.0-2.16.6/gobject/gsignal.c:2243
#41 0xb7e67667 in gtk_widget_event_internal (widget=0x8088000,
event=0xbf8e1b04) at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:4678
#42 0xb7d43004 in IA__gtk_main_do_event (event=0xbf8e1b04)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmain.c:1514
#43 0xb7ba5f33 in gdk_window_process_updates_internal (window=0x807b530)
at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:2378
#44 0xb7ba64a4 in IA__gdk_window_process_updates (window=0x807b530,
update_children=1) at /build/buildd/gtk+2.0-2.12.9/gdk/gdkwindow.c:2494
#45 0xb7e6ebec in IA__gtk_widget_draw (widget=0x817fea8, area=0xbf8e1e24)
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkwidget.c:3600
#46 0x080536db in refresh_display () at hal/utils/scope_disp.c:643
#47 0x0804d0a5 in heartbeat (data=0x0) at hal/utils/scope.c:246
#48 0xb79e0436 in g_timeout_dispatch (source=0x81ca0d8, callback=0x9cac100b,
user_data=0x0) at /build/buildd/glib2.0-2.16.6/glib/gmain.c:3446
#49 0xb79dfcc6 in IA__g_main_context_dispatch (context=0x807dae8)
at /build/buildd/glib2.0-2.16.6/glib/gmain.c:2012
#50 0xb79e3083 in g_main_context_iterate (context=0x807dae8, block=1,
dispatch=1, self=0x80a6610)
at /build/buildd/glib2.0-2.16.6/glib/gmain.c:2645
#51 0xb79e3467 in IA__g_main_loop_run (loop=0x81b5df0)
at /build/buildd/glib2.0-2.16.6/glib/gmain.c:2853
#52 0xb7d43264 in IA__gtk_main ()
at /build/buildd/gtk+2.0-2.12.9/gtk/gtkmain.c:1163
#53 0x0804cea1 in main (argc=0, argv=0x60002002) at hal/utils/scope.c:207
(gdb)
------------------------------------------------------------------------------
#46 0x080536db in refresh_display () at hal/utils/scope_disp.c:643
643 gtk_widget_draw(vert->readout_label, &r);
#47 0x0804d0a5 in heartbeat (data=0x0) at hal/utils/scope.c:246
...
if (ctrl_shm->state == DONE) {
if(!gtk_window_is_active(GTK_WINDOW(ctrl_usr->main_win)))
gtk_window_set_urgency_hint(GTK_WINDOW(ctrl_usr->main_win), TRUE);
246 capture_complete();
} else if (ctrl_usr->run_mode == ROLL) capture_cont();
return 1;
}
------------------------------------------------------------------------------
www:
" gtk_widget_draw is deprecated and should not be used in newly-written code.
In GTK+ 1.2, this function would immediately render the region area of a
widget, by invoking the virtual draw method of a widget. In GTK+ 2.0, the draw
method is gone, and instead gtk_widget_draw() simply invalidates the specified
region of the widget, then updates the invalid region of the widget
immediately. Usually you don't want to update the region immediately for
performance reasons, so in general gtk_widget_queue_draw_area() is a better
choice if you want to draw a region of a widget."
--------------------------------------------------------------------------
i looked at some simple modifications to workaround gtk_widget_draw
(without understanding much) like crippling update_readout()
but still get sigsegv's for mouse/button activity
so i think there may be some incompatibilities with gtk2.0?
maybe using the dbg libraries can help
libgtk2.0-0-dbg
libglib2.0-0-dbg
--------------------------------------------------------------------------