GNOME Bugzilla – Bug 571099
nemiver crashes on startup in nmv-hex-editor.cc:63?
Last modified: 2009-02-22 12:58:59 UTC
I jhbuilded nemiver and I can't start it because it crashes immediately. My nemiver revision is 978. muelli@bigbox /tmp $ G_SLICE=debug-blocks GTK_DEBUG=misc jhbuild run gdb nemiver GNU gdb Fedora (6.8-29.fc10) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... (gdb) r Starting program: /opt/gnome2/bin/nemiver [Thread debugging using libthread_db enabled] [New Thread 0x7ffff3e54790 (LWP 1151)] Gtk-Message: Failed to load module "gnomebreakpad": libgnomebreakpad.so: cannot open shared object file: No such file or directory Program received signal SIGSEGV, Segmentation fault. 0x00007ffff65e84b8 in IA__g_type_fundamental (type_id=3947952128) at gtype.c:3680 3680 return node ? NODE_FUNDAMENTAL_TYPE (node) : 0; Current language: auto; currently c Missing separate debuginfos, use: debuginfo-install libgcc-4.3.2-7.x86_64 libogg-1.1.3-9.fc9.x86_64 libpng-1.2.34-1.fc10.x86_64 libstdc++-4.3.2-7.x86_64 libvorbis-1.2.0-5.fc10.x86_64 ncurses-libs-5.6-20.20080927.fc10.x86_64 (gdb) where
+ Trace 212400
Thread 1 (Thread 0x7ffff3e54790 (LWP 1151))
workbench = {m_pointer = 0x6b5040} __PRETTY_FUNCTION__ = "int main(int, char**)" (gdb) (gdb)
I have not been able to reproduce this here. are you also using ghex from jhbuild or a system version?
Hey Jonathon :) At least jhbuild builds ghex right before nemiver. I assume that the build process picks that up, but I can provide a build log so that you can ensure that it picks the jhbuilded version. I am configuring like this: ./autogen.sh --prefix /opt/gnome2 --libdir '${exec_prefix}/lib64' --disable-static --enable-maintainer-mode --disable-scrollkeeper --disable-gtk-doc --disable-docs And a typical compile line looks like this: /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -pthread -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/libxml2 -I/opt/gnome2/include/libgtop-2.0 -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/glibmm-2.4 -I/opt/gnome2/lib64/glibmm-2.4/include -I/opt/gnome2/include/sigc++-2.0 -I/opt/gnome2/lib64/sigc++-2.0/include -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -DENABLE_NLS=1 -DDATADIR=\"/opt/gnome2/share\" -DSYSTEM_LIBDIR=\"/usr/lib\" -DNEMIVER_INSTALL_PREFIX=\"/opt/gnome2\" -DNEMIVER_SYSTEM_CONFIG_DIR=\"/opt/gnome2/lib64/nemiver/config\" -DNEMIVER_MODULES_DIR=\"/opt/gnome2/lib64/nemiver/modules\" -DNEMIVER_PLUGINS_DIR=\"/opt/gnome2/lib64/nemiver/plugins\" -DNEMIVER_VERSION=\"0.6.4\" -DGDB_PROG=\"/usr/bin/gdb\" -g3 -pipe -O2 -fuse-cxa-atexit -MT nmv-env.lo -MD -MP -MF .deps/nmv-env.Tpo -c -o nmv-env.lo nmv-env.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -pthread -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/libxml2 -I/opt/gnome2/include/libgtop-2.0 -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/glibmm-2.4 -I/opt/gnome2/lib64/glibmm-2.4/include -I/opt/gnome2/include/sigc++-2.0 -I/opt/gnome2/lib64/sigc++-2.0/include -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -DENABLE_NLS=1 -DDATADIR=\"/opt/gnome2/share\" -DSYSTEM_LIBDIR=\"/usr/lib\" -DNEMIVER_INSTALL_PREFIX=\"/opt/gnome2\" -DNEMIVER_SYSTEM_CONFIG_DIR=\"/opt/gnome2/lib64/nemiver/config\" -DNEMIVER_MODULES_DIR=\"/opt/gnome2/lib64/nemiver/modules\" -DNEMIVER_PLUGINS_DIR=\"/opt/gnome2/lib64/nemiver/plugins\" -DNEMIVER_VERSION=\"0.6.4\" -DGDB_PROG=\"/usr/bin/gdb\" -g3 -pipe -O2 -fuse-cxa-atexit -MT nmv-date-utils.lo -MD -MP -MF .deps/nmv-date-utils.Tpo -c nmv-date-utils.cc -fPIC -DPIC -o .libs/nmv-date-utils.o g++ -DHAVE_CONFIG_H -I. -I../.. -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -pthread -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/libxml2 -I/opt/gnome2/include/libgtop-2.0 -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -I/opt/gnome2/include/glibmm-2.4 -I/opt/gnome2/lib64/glibmm-2.4/include -I/opt/gnome2/include/sigc++-2.0 -I/opt/gnome2/lib64/sigc++-2.0/include -I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib64/glib-2.0/include -DENABLE_NLS=1 -DDATADIR=\"/opt/gnome2/share\" -DSYSTEM_LIBDIR=\"/usr/lib\" -DNEMIVER_INSTALL_PREFIX=\"/opt/gnome2\" -DNEMIVER_SYSTEM_CONFIG_DIR=\"/opt/gnome2/lib64/nemiver/config\" -DNEMIVER_MODULES_DIR=\"/opt/gnome2/lib64/nemiver/modules\" -DNEMIVER_PLUGINS_DIR=\"/opt/gnome2/lib64/nemiver/plugins\" -DNEMIVER_VERSION=\"0.6.4\" -DGDB_PROG=\"/usr/bin/gdb\" -g3 -pipe -O2 -fuse-cxa-atexit -MT nmv-env.lo -MD -MP -MF .deps/nmv-env.Tpo -c nmv-env.cc -fPIC -DPIC -o .libs/nmv-env.o And I think linking looks like this: /bin/sh ../../../libtool --tag=CXX --mode=link g++ -g3 -pipe -O2 -fuse-cxa-atexit -module -avoid-version -Wl,--as-needed -L/opt/gnome2/lib64 -Wl,-O0 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed -o libdbgperspectiveplugin.la -rpath /opt/gnome2/lib64/nemiver/plugins/dbgperspective nmv-dialog.lo nmv-run-program-dialog.lo nmv-locate-file-dialog.lo nmv-load-core-dialog.lo nmv-saved-sessions-dialog.lo nmv-preferences-dialog.lo nmv-proc-list-dialog.lo nmv-var-inspector-dialog.lo nmv-find-text-dialog.lo nmv-sess-mgr.lo nmv-call-stack.lo nmv-variables-utils.lo nmv-local-vars-inspector.lo nmv-global-vars-inspector-dialog.lo nmv-var-inspector.lo nmv-breakpoints-view.lo nmv-registers-view.lo nmv-thread-list.lo nmv-file-list.lo nmv-open-file-dialog.lo nmv-set-breakpoint-dialog.lo nmv-choose-overloads-dialog.lo nmv-remote-target-dialog.lo nmv-dbg-perspective.lo nmv-vars-treeview.lo nmv-call-function-dialog.lo nmv-memory-view.lo -Wl,--export-dynamic -L/opt/gnome2/lib64 -lgmodule-2.0 -lglib-2.0 -pthread -L/opt/gnome2/lib64 -lgthread-2.0 -lrt -lglib-2.0 -L/opt/gnome2/lib64 -lxml2 -Wl,--export-dynamic -L/opt/gnome2/lib64 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lgtop-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lgtkmm-2.4 -lgiomm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lglademm-2.4 -lgtkmm-2.4 -lglade-2.0 -lgiomm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lvte -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lgtksourceviewmm-2.0 -lgtksourceview-2.0 -lgtkmm-2.4 -lgiomm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lgtkhex -lgailutil -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lglademm-2.4 -lgtkmm-2.4 -lglade-2.0 -lgiomm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lvte -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/opt/gnome2/lib64 -lgiomm-2.4 -lgio-2.0 -lglibmm-2.4 -lgmodule-2.0 -lgobject-2.0 -lsigc-2.0 -lglib-2.0 ../../../src/common/libnemivercommon.la ../../../src/uicommon/libnemiveruicommon.la
Created attachment 128721 [details] nemiver build log Note, that it doesn't crash (anymore?) if I run it without GDB...
I tracked this down, and it looks like I might have something. I think it's a bug in ghex. I submitted a patch to it. See #571892.
Tobias, Until ghex gets released with a fix (possibly the fix I proposed) you can work around the problem by configure nemiver with: ./configure --disable-memoryview. This way, the code that instantiates the GtkHex widget won't get called and you shouldn't have the crash. We really need to push out a point release of ghex with the fix so that distros can update it. Normally, clients of ghex shouldn't need to be recompiled to be fixed wrt problem. I hope this helps.
The patch from attachment 128800 [details] [review] in bug 571892 works like charm for me! Thanks for the fix!
I've released a new version of ghex, so hopefully that will get picked up by distros soon.
k, I'm closing as a dup of bug 571892. *** This bug has been marked as a duplicate of 571892 ***