Bug 81670

Summary: Improvement in frame stack display
Product: [Applications] kdevelop Reporter: Nick Savoiu <savoiu>
Component: CPP DebuggerAssignee: kdevelop-bugs-null
Status: RESOLVED FIXED    
Severity: wishlist    
Priority: NOR    
Version: 3.0.3   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nick Savoiu 2004-05-16 09:08:38 UTC
Version:           3.0.3 (using KDE KDE 3.2.2)
Installed from:    Compiled From Sources
Compiler:          gcc3.2 
OS:                Linux

NOTE: viewing this in a fixed font would probably make things easier to understand. A formatted version is available at: http://www.ics.uci.edu/~savoiu/kdevelop_frame_stack.html.

-----------------------------------------------

This is how a backtrace is currently displayed in the 'Frame Stack' pane. 
While it's an informative display I find it hard to 'decypher' without careful reading.

#0 Mtp_MakeHndInternal () from /home/nsavoiu/test/src/linux-gcc-32/mtplib.so
#1 0x41d86e99 in Mtp_DeletesByteWord () from /home/nsavoiu/test/src/linux-gcc-32/mtplib.so
#2 0x41d86558 in Mtp_CompMakeHnd () from /home/nsavoiu/test/src/linux-gcc-32/mtplib.so
#3 0x41d66651 in Mtp_MakeHndEx () from /home/nsavoiu/test/src/linux-gcc-32/mtplib.so
#4 0x41d925cf in Mtp_RetestAndMakeHnd () from /home/nsavoiu/test/src/linux-gcc-32/mtplib.so
#5 0x41d924b7 in Mtp_RetestAndMake () from /home/nsavoiu/test/src/linux-gcc-32/mtplib.so
#6 0x415ba847 in Mtp::Rehash::RetestAndMake (this=0x80708a8, cmdline=@0xbfffe190) at Mtp_Rehash.cpp:66
#7 0x400225f9 in MainHook::DoLoop (this=0xbfffe440, input=@0xbfffe220, exit_on_error=true) at MainHook.cpp:370
#8 0x40022aae in MainHook::Do (this=0xbfffe440) at MainHook.cpp:431
#9 0x4001d7be in main (argc=3, argv=0xbfffe4e4) at Main.cpp:179
#0 0x4235d967 in __libc_start_main () from /lib/i686/libc.so.6
#1 0x0804a25d in _start ()

My suggestion is to parse the GDB output and have a column display as the one in
the 'Watch' pane. Optionally the user should be allowed to change what columns are
displayed and in what order.

This would allow a user to remove information that he/she does not care for. Most of the
time 'function' and 'parameters' are sufficient for my needs. At the very least the user
would be able to make unneeded columns very narrow.


Frame | Function                   | Params                       | Source                      | Address
------------------------------------------------------------------------------------------------------------
#0    | Mtp_MakeHndInternal        |                              | /home/nsa...cc-32/mtplib.so |
#1    | Mtp_DeletesByteWord        |                              | /home/nsa...cc-32/mtplib.so | 0x41d86e99 
#2    | Mtp_CompMakeHnd            |                              | /home/nsa...cc-32/mtplib.so | 0x41d86558
#3    | Mtp_MakeHndEx              |                              | /home/nsa...cc-32/mtplib.so | 0x41d66651
#4    | Mtp_RetestAndMakeHnd       |                              | /home/nsa...cc-32/mtplib.so | 0x41d925cf
#5    | Mtp_RetestAndMake          |                              | /home/nsa...cc-32/mtplib.so | 0x41d924b7
#6    | Mtp::Rehash::RetestAndMake | this=0x8070 ... =@0xbfffe190 | Mtp_Rehash.cpp:66           | 0x415ba847
#7    | MainHook::DoLoop           | this=0xbfff ... n_error=true | MainHook.cpp:370            | 0x400225f9
#8    | MainHook::Do               | this=0xbfffe440)             | MainHook.cpp:431            | 0x40022aae
#9    | main                       | argc=3, argv=0xbfffe4e4)     | Main.cpp:179                | 0x40022aae
#0    | __libc_start_main          |                              | /lib/i686/libc.so.6         | 0x4235d967
#1    | _start                     |                              |                             | 0x0804a25d
Comment 1 Amilcar do Carmo Lucas 2004-11-05 18:04:57 UTC
Nope, no objections here.
Comment 2 Nick Savoiu 2004-11-05 18:57:58 UTC
Hehe, I had posted to the wrong list :)
Comment 3 Vladimir Prus 2006-05-19 16:12:10 UTC
SVN commit 542513 by vprus:

Merge MI branch (/branches/work/kdevelop-debugger-mi).

BUG: 65818
BUG: 81277
BUG: 81670
BUG: 102319
BUG: 117842
BUG: 124041


 A             DESIGN.txt   branches/work/kdevelop-debugger-mi/DESIGN.txt#542512
 M  +7 -2      Makefile.am  
 A             TODO.txt   branches/work/kdevelop-debugger-mi/TODO.txt#542512
 M  +321 -113  breakpoint.cpp  
 M  +85 -93    breakpoint.h  
 D             callbacks.h  
 M  +1 -3      dbgcommand.cpp  
 M  +5 -10     dbgcommand.h  
 M  +13 -36    dbgcontroller.h  
 M  +13 -4     dbgpsdlg.cpp  
 M  +5 -0      dbgpsdlg.h  
 M  +1 -1      dbgtoolbar.cpp  
 M  +1 -1      debuggerconfigwidget.cpp  
 M  +4 -6      debuggerconfigwidgetbase.ui  
 M  +1 -0      debuggerdcopinterface.h  
 M  +152 -138  debuggerpart.cpp  
 M  +10 -2     debuggerpart.h  
 M  +1 -3      debuggertracingdialog.cpp  
 M  +349 -120  framestackwidget.cpp  
 M  +79 -18    framestackwidget.h  
 M  +359 -363  gdbbreakpointwidget.cpp  
 M  +28 -13    gdbbreakpointwidget.h  
 M  +53 -45    gdbcommand.cpp  
 M  +160 -32   gdbcommand.h  
 M  +835 -1291 gdbcontroller.cpp  
 M  +175 -61   gdbcontroller.h  
 M  +205 -15   gdboutputwidget.cpp  
 M  +69 -1     gdboutputwidget.h  
 M  +29 -202   gdbparser.cpp  
 M  +3 -30     gdbparser.h  
 A             label_with_double_click.cpp   branches/work/kdevelop-debugger-mi/label_with_double_click.cpp#542512
 A             label_with_double_click.h   branches/work/kdevelop-debugger-mi/label_with_double_click.h#542512
 M  +58 -88    memviewdlg.cpp  
 M  +12 -18    memviewdlg.h  
 M  +3 -0      mi/Makefile.am  
 M  +107 -0    mi/gdbmi.cpp  
 M  +124 -102  mi/gdbmi.h  
 M  +21 -11    mi/milexer.cpp  
 M  +3 -5      mi/milexer.h  
 M  +143 -115  mi/miparser.cpp  
 M  +27 -2     mi/miparser.h  
 A             mi/tokens.h   branches/work/kdevelop-debugger-mi/mi/tokens.h#542512
 A             tests/breakpoints (directory)   branches/work/kdevelop-debugger-mi/tests/breakpoints#542512
 A             tests/dll (directory)   branches/work/kdevelop-debugger-mi/tests/dll#542512
 A             tests/infinite_loop (directory)   branches/work/kdevelop-debugger-mi/tests/infinite_loop#542512
 M  +22 -7     tests/print_pointers/print_pointers.cpp  
 M  +7 -2      tests/print_pointers/print_pointers.kdevelop  
 A             tests/segfault (directory)   branches/work/kdevelop-debugger-mi/tests/segfault#542512
 A             tests/threads (directory)   branches/work/kdevelop-debugger-mi/tests/threads#542512
 A             tests/tracing (directory)   branches/work/kdevelop-debugger-mi/tests/tracing#542512
 M  +1 -1      tests/two_module/main.cpp  
 M  +1008 -592 variablewidget.cpp  
 M  +194 -91   variablewidget.h