Bug 144254

Summary: Local variable tree expanded unnecessarily, slowing down frame switching
Product: [Applications] kdevelop Reporter: Thomas McGuire <mcguire>
Component: CPP DebuggerAssignee: kdevelop-bugs-null
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:

Description Thomas McGuire 2007-04-15 14:53:22 UTC
Version:           3.4 SVN (3.5 branch) (using KDE KDE 3.5.6)
Installed from:    Ubuntu Packages
OS:                Linux

For big projects, updating the local variables takes ages (several seconds) because a lot of GDB commands (-var-update*, -var-evaluate-expression, whatis, print) are executed.

Fortunately, collapsing the "Locals" tree prevents updates.

However, the "Locals" tree is expanded again when changing frames using the framestack widget. This should not happen. Because of this, using the framestack widget for switching frames is unusable for big projects.

When switching frames, the "Locals" tree should not be automatically expanded.

The cause for this is the call "frame->setOpen(true)" in VariableTree::demand_frame_root.
However, this can not be solved by simply removing this call, since in demand_frame_root, a new "Local" tree is created, which is only removed later in VariableTree::frameIdReady. Removing the setOpen() call would also prevent frameIdReady() to be called.

I do not know how to solve this properly myself.
Comment 1 Andreas Pakulat 2009-07-24 20:38:36 UTC
this seems to be fixed in kdev4, the locals tree keeps its open/close state.