Reading gdb backtraces from Gtk+ applications can be a pain, as the signal emissions tend make them very long and hard to read. Today i wrote a small application that compresses signal emissions and some other common gnome stuff in gdb backtraces.
For example, take this 147 frames long backtrace i’m currently working on. Its pretty much a pain to read.
With my app it turns into this instead, which is much nicer. Here are some examples:
#7 ... segfault caught by bug-buddy #8 <signal handler called> () #9 __kernel_vsyscall ()
#36 gtk_scrolled_window_destroy (object=0x82bc538) at gtkscrolledwindow.c:799 ... #43 gtk_object_dispose (gobject=0x82bc538) at gtkobject.c:418 #44 gtk_widget_dispose (object=0x82bc538) at gtkwidget.c:7851 #45 fm_tree_view_dispose (object=0x82bc538) at fm-tree-view.c:1457
#115 gtk_object_destroy (object=0x82d0200) at gtkobject.c:403 #120 ... emitting signal 219 on instance 0x5954 #121 _gtk_action_emit_activate (action=0x82c8e60) at gtkaction.c:872
#130 gtk_window_key_press_event (widget=0x82d0200, event=0x83716e8) at gtkwindow.c:4961 #140 ... dispatching GdkEvent 0x83716e8 to widget 0x82d0200 #141 g_main_context_dispatch (context=0x819fca0) at gmain.c:2064
Any chance something like this could be integrated with bugzilla?
Try pinging it off of Olav?
very nice!
very handy!
I’ve just started using GDB, and I’ve run into issues with this. This’ll make scanning through everything so much easier. Thanks!
This is a must for Bugzilla!
I’ve got some code which parses backtraces, and then figures out which lines appear a lot in a group of backtraces. Really helpful when trying to figure out low-hanging-fruit to make an app more stable.
I wrote it on work time so I’d have to ask to share it, but the idea might be of use to you!