Download presentation
Presentation is loading. Please wait.
Published byBridget Bradford Modified over 8 years ago
1
Flexible hierarchy design proposal
2
Flexible hierarchy design Goals Allow debug plugins to define their own debug element hierarchy and behaviour Debug views become generic and can be customized
3
Flexible hierarchy details All debug objects implement IDebugElement Implements boolean hasChildren(ViewContext) Implements IDebugElement[] getChildren(ViewContext) Implements IDebugElement getParent(ViewContext) Debug element returns children based on view context Debug objects optionally implement IStep, ITerminate etc. Allows debug core to supply consistent actions Custom actions can be added similar to today When a debug session starts it registers its “root” IDebugElement with the debug core Hierarchy is retrieved by getting the children of a debug element. Debug core makes no assumptions on hierarchy
4
Flexible hierarchy example MyProcess implements IDebugElement, ITerminate MyThread implements IDebugElement, IStep, ITerminate, IResume MyStackFrame implements IDebugElement
5
Generic debug view design All views including the current Debug View become an instance of a generic debug view Core supplies base views for consistency Debug view Variables view Registers view Etc. Debug providers can define their own views based on this generic view or override existing core views
6
Debug core “Debug View” Default View updaters On selection On debug event Debug view Debug session Core debug view listens on selection events from list of debug sessions Gets immediate children from selected debug session passing in “DebugView” as view context Selected debug session sends Debug event (of selection type) to indicate which debug element to select. Debug view gets parent of selected debug element to fill in hierarchy List of registered debug sessions Selected debug session selected debug element
7
Debug core “Variable View” Default View updaters On selection On debug event Variable view Core “Variable View” listens on selection events from “Debug View” Gets immediate children from selected debug element passing in “VariableView” as view context Debug element returns children if applicable to context or an empty list Debug events used to update variables
8
Customized View Default View updaters On selection On debug event My view In plugin.xml define the following: View id View updaters Control used to display content of view If the view ID specifies a core view then this would override the core view’s default behaviour
9
End of slides
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.