Bug 102319 - Infinite recursion leads to a very long delay to display stack and makes impossible another debugging if stopped
Summary: Infinite recursion leads to a very long delay to display stack and makes impo...
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: CPP Debugger (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-23 22:37 UTC by Benjamin Piwowarski
Modified: 2006-05-19 16:12 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Piwowarski 2005-03-23 22:37:47 UTC
Version:            (using KDE KDE 3.3.2)
Installed from:    Debian testing/unstable Packages

When debugging after a crash due to an infinite loop, like eg

void f() { f(); }
int main(int, char **) { f(); }

it takes a lot of time (and memory) to display the stack, if it is ever possible. Would it be possible to display only a part of the stack?

Moreover, when one stops the debugger before the stack is displayed the memory doesn't seem to be freed (and keep on growing). It is also impossible to start a new debugging process.
Comment 1 Vladimir Prus 2005-08-19 13:31:25 UTC
I think we should use some hardcoded limits for backtrace depth, and if we run into that limit, the framestack widget should contain a link, or button "show more". The only thing I don't yet decided is if it should be:
- a link in list
- a option in popup menu
- a button in list (is it even possible to put button in QListView?)
Comment 2 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