Re: libglademm core dumps with older glade files



On Wed, 2005-02-23 at 19:48 -0500, Carl Nygard wrote:
> I'm wondering how backward compatible the glade files are.

They are obvisouly meant to be. And it would be a disaster if they
weren't.

>   I have a set
> of glade files that seem to work fine on FC2, but generate quite a bit
> of problems with FC3.

I guess a test case would help people to investigate. You could adapt a
libglademm example. You could also try it with the C API. The gdb stack
trace will probably be more useful if you use --g-fatal-warnings.

>   I even tried loading the file in question into
> the FC3 glade and saving it back out, no difference in behavior.
> 
> [carl traveler ~]$ rpm -q libglademm2 gtkmm24 glibmm24 libglade
> libglademm2-2.0.1-2.fr
> gtkmm24-2.4.7-1
> glibmm24-2.4.5-1
> libglade-0.17-15
> [carl traveler ~]$ uname -a
> Linux traveler 2.6.10-1.741_FC3 #1 Thu Jan 13 16:38:22 EST 2005 i686
> i686 i386 GNU/Linux
> 
> 
> Valgrind output and gdb stack trace follow:
> 
>         GtkGUI::GtkScreen::ctor: ENTRY...
>           Reading glade
> ==22364==
> ==22364== Invalid read of size 4
> ==22364==    at 0x2542BD: gtk_settings_get_for_screen (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x30562C: gtk_widget_get_settings (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x157ED5: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x343992F8: Gtk::Widget_Class::screen_changed_callback(_GtkWidget*, _GdkScreen*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD1F3E: g_cclosure_marshal_VOID__OBJECT (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB96B1: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB9346: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xACF645: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAD0CBB: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAD0F59: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0x303F65: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x303FFC: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==  Address 0x34609ED0 is not stack'd, malloc'd or (recently) free'd
> ==22364==
> ==22364== Invalid read of size 4
> ==22364==    at 0xAD9D15: g_type_check_instance_is_a (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0x2542CE: gtk_settings_get_for_screen (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x30562C: gtk_widget_get_settings (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x157ED5: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x343992F8: Gtk::Widget_Class::screen_changed_callback(_GtkWidget*, _GdkScreen*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD1F3E: g_cclosure_marshal_VOID__OBJECT (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB96B1: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB9346: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xACF645: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAD0CBB: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAD0F59: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0x303F65: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==  Address 0x34609ED0 is not stack'd, malloc'd or (recently) free'd
> 
> (metlab.Linux:22364): Gtk-CRITICAL **: file gtksettings.c: line 447 (gtk_settings_get_for_screen): assertion `GDK_IS_SCREEN (screen)' failed
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gobject.c: line 1642 (g_object_get_data): assertion `G_IS_OBJECT (object)' failed
> 
> (metlab.Linux:22364): GLib-GObject-WARNING **: invalid (NULL) pointer instance
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gsignal.c: line 1677 (g_signal_connect_data): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gobject.c: line 1655 (g_object_set_data): assertion `G_IS_OBJECT (object)' failed
> 
> (metlab.Linux:22364): Gtk-CRITICAL **: file gtksettings.c: line 447 (gtk_settings_get_for_screen): assertion `GDK_IS_SCREEN (screen)' failed
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gobject.c: line 1642 (g_object_get_data): assertion `G_IS_OBJECT (object)' failed
> 
> (metlab.Linux:22364): GLib-GObject-WARNING **: invalid (NULL) pointer instance
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gsignal.c: line 1677 (g_signal_connect_data): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gobject.c: line 1655 (g_object_set_data): assertion `G_IS_OBJECT (object)' failed
> 
> (metlab.Linux:22364): Gtk-CRITICAL **: file gtksettings.c: line 447 (gtk_settings_get_for_screen): assertion `GDK_IS_SCREEN (screen)' failed
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gobject.c: line 1642 (g_object_get_data): assertion `G_IS_OBJECT (object)' failed
> 
> (metlab.Linux:22364): GLib-GObject-WARNING **: invalid (NULL) pointer instance
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gsignal.c: line 1677 (g_signal_connect_data): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
> 
> (metlab.Linux:22364): GLib-GObject-CRITICAL **: file gobject.c: line 1655 (g_object_set_data): assertion `G_IS_OBJECT (object)' failed
> ==22364==
> ==22364== Invalid read of size 4
> ==22364==    at 0x2542BD: gtk_settings_get_for_screen (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x30562C: gtk_widget_get_settings (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x244BD9: gtk_rc_get_style (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x307A39: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x256019: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x25632C: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x300CAD: gtk_widget_size_request (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x313A03: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x314AB6: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x34396909: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD13AD: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB96B1: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==  Address 0x34609ED0 is not stack'd, malloc'd or (recently) free'd
> ==22364==
> ==22364== Invalid read of size 4
> ==22364==    at 0xAD9D15: g_type_check_instance_is_a (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0x2542CE: gtk_settings_get_for_screen (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x30562C: gtk_widget_get_settings (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x244BD9: gtk_rc_get_style (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x307A39: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x256019: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x25632C: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x300CAD: gtk_widget_size_request (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x313A03: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x314AB6: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x34396909: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD13AD: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==  Address 0x34609ED0 is not stack'd, malloc'd or (recently) free'd
> 
> (metlab.Linux:22364): Gtk-CRITICAL **: file gtksettings.c: line 447 (gtk_settings_get_for_screen): assertion `GDK_IS_SCREEN (screen)' failed
> ==22364==
> ==22364== Invalid read of size 4
> ==22364==    at 0x24325A: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x244BDE: gtk_rc_get_style (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x307A39: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x256019: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x25632C: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x300CAD: gtk_widget_size_request (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x313A03: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x314AB6: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x34396909: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD13AD: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB96B1: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB9346: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==  Address 0x14 is not stack'd, malloc'd or (recently) free'd
> ==22364==
> ==22364== Process terminating with default action of signal 11 (SIGSEGV): dumping core
> ==22364==  Access not within mapped region at address 0x14
> ==22364==    at 0x24325A: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x244BDE: gtk_rc_get_style (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x307A39: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x256019: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x25632C: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x300CAD: gtk_widget_size_request (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x313A03: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x314AB6: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x34396909: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD13AD: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB96B1: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB9346: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.400.8)
> 
> valgrind: vg_signals.c:1660 (make_coredump): Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_offset' failed.
> ==22364==    at 0xB002BFEF: vgPlain_skin_assert_fail (vg_mylibc.c:1137)
> ==22364==    by 0xB002BFEE: assert_fail (vg_mylibc.c:1133)
> ==22364==    by 0xB002C02C: vgPlain_core_assert_fail (vg_mylibc.c:1144)
> ==22364==    by 0xB003186E: make_coredump (vg_signals.c:1660)
> ==22364==    by 0xB0031B79: vg_default_action (vg_signals.c:1803)
> ==22364==    by 0xB0031D94: vgPlain_deliver_signal (vg_signals.c:1912)
> ==22364==    by 0xB000DB6A: do_scheduler (vg_scheduler.c:1209)
> ==22364==    by 0xB000DBDF: vgPlain_scheduler (vg_scheduler.c:1240)
> ==22364==    by 0xB0027076: main (vg_main.c:3061)
> 
> sched status:
> 
> Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0
> ==22364==    at 0x24325A: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x244BDE: gtk_rc_get_style (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x307A39: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x256019: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x25632C: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x300CAD: gtk_widget_size_request (in /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x313A03: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x314AB6: (within /usr/lib/libgtk-x11-2.0.so.0.400.14)
> ==22364==    by 0x34396909: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/libgtkmm-2.4.so.1.0.7)
> ==22364==    by 0xAD13AD: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB96B1: (within /usr/lib/libgobject-2.0.so.0.400.8)
> ==22364==    by 0xAB9346: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.400.8)
> 
> 
> Note: see also the FAQ.txt in the source distribution.
> It contains workarounds to several common problems.
> 
> If that doesn't help, please report this bug to: valgrind.kde.org
> 
> In the bug report, send all the above text, the valgrind
> version, and what Linux distro you are using.  Thanks.
> 
> 
> #0  0x010fe25a in gtk_rc_get_default_files () from /usr/lib/libgtk-x11-2.0.so.0
> (gdb) where
> #0  0x010fe25a in gtk_rc_get_default_files () from /usr/lib/libgtk-x11-2.0.so.0
> #1  0x010ffbdf in gtk_rc_get_style () from /usr/lib/libgtk-x11-2.0.so.0
> #2  0x011c2a3a in gtk_widget_reset_shapes () from /usr/lib/libgtk-x11-2.0.so.0
> #3  0x0111101a in gtk_size_group_remove_widget ()
>    from /usr/lib/libgtk-x11-2.0.so.0
> #4  0x0111132d in gtk_size_group_remove_widget ()
>    from /usr/lib/libgtk-x11-2.0.so.0
> #5  0x011bbcae in gtk_widget_size_request () from /usr/lib/libgtk-x11-2.0.so.0
> #6  0x011cea04 in gtk_window_move () from /usr/lib/libgtk-x11-2.0.so.0
> #7  0x011cfab7 in gtk_window_get_position () from /usr/lib/libgtk-x11-2.0.so.0
> #8  0x00f0e90a in Gtk::Widget_Class::show_callback ()
>    from /usr/lib/libgtkmm-2.4.so.1
> #9  0x001693ae in g_cclosure_marshal_VOID__VOID ()
>    from /usr/lib/libgobject-2.0.so.0
> #10 0x001516b2 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
> #11 0x00151347 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #12 0x00167432 in g_signal_has_handler_pending ()
>    from /usr/lib/libgobject-2.0.so.0
> #13 0x00168cbc in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> #14 0x00168f5a in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #15 0x011bc183 in gtk_widget_show () from /usr/lib/libgtk-x11-2.0.so.0
> #16 0x0023ffc5 in glade_xml_set_common_params ()
>    from /usr/lib/libglade-2.0.so.0
> #17 0x002405a8 in glade_xml_build_widget () from /usr/lib/libglade-2.0.so.0
> #18 0x002409a3 in glade_standard_build_children ()
>    from /usr/lib/libglade-2.0.so.0
> #19 0x00240ad8 in glade_xml_construct () from /usr/lib/libglade-2.0.so.0
> #20 0x001887ba in Xml (this=0xaaffd80, filename= 0xbfe94ce0, root= 0xbfe94cf0,
>     domain= 0xbfe94d00) at xml.h:99
> #21 0x00188970 in Gnome::Glade::Xml::create (filename= 0xbfe94ce0,
>     root= 0xbfe94cf0, domain= 0xbfe94d00) at refptr.h:174
> #22 0x08663a82 in GtkScreen (this=0xaaffeb8, sources= 0xbfe95050,
>     windows= 0xbfe94f90, feedback= 0xbfe95020, busy= 0xbfe94fb0, box=0x0, id=0)
>     at gtkscreen.cxx:958
> #23 0x08644d01 in ScreenMgr::ScreenMgr () at rendermgr.hxx:225
> 
> 
-- 
Murray Cumming
murrayc murrayc com
www.murrayc.com
www.openismus.com




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