Community
Participate
Working Groups
To reproduce: 1. Run a debug session with more than one stackframes. 2. Open the registers view 3. Expand a register group 4. Select another stackframe and expand a register group in the Registers View. 5. Switch back to the previous stackframe The previously expanded regsiter group is collapsed. Expected Behaviour: The register group should remain expanded. My sample adapter is always returning the same stackframe and register group objects. If I expand the register group again and repeat the previous steps, expansion is maintained properly.
Samantha, could you verify that this bug still exists in HEAD. A fix for bug 103381 was released this morning that fixes another expansion problem.
Kevin, I checked out debug ui from HEAD. The expansion in the Registers View is not maintained at all when switching between the stackframes. Expansion in Variables View is maintained properly. Thanks... Samantha
Samantha, is this a regression from 3.0?
The bug that I originally reported was found in 3.0. The fixes in HEAD has caused regression from 3.0, causing registers group not to maintain expansion when swtiching between stackframes.
Target for 3.1.1 as this is a 3.0 regression.
Same scenario can be reproduced in Variables View. When the expanded state is fully restored, the view nulls out the saved expansion. In this case, the second frame does not have it's own expansion state stored so it inherits the last expansion state used by the view, restores completely the expansion state and then nulls it out. Clicking on the first frame again restores the null expansion state because the saved state was changed when the last state was changed. Need to copy the last state before using it. Fixed in HEAD and 3_1_maintenance changes: AbstractViewerState: created a copy method and a default constuctor. Changed fSavedExpansion and fSelection to protected (from private) so that subclasses may access. RegistersViewerState: implemented copy() and default constructor VariablesView: fixed restoreState() to make copy of last state. VariablesViewer: fixed internalExpandPath(...) to properly handle IRegisterGroup ViewerState: copy() and default Constructor.
Samantha, please verify.
Verified with HEAD.