Download presentation
Presentation is loading. Please wait.
Published byBraydon Steggall Modified over 10 years ago
1
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 1 Progress Report - Debug Platform (3.2 M4) State of 3.2 M4 Some Demos Next Steps
2
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 2 Progress Summary The goal: The debug platform should support arbitrary debug architectures and implementations of debuggers. The good news: The 3.2 M4 debug platform has the ground work in place to support arbitrary debug implementations Disclaimer: Of course, there’s still more to do…
3
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 3 What We Have Support arbitrary debug models Flexible hierarchy all views support arbitrary content (except breakpoints view) Asynchronous content and labels Hierarchy of asynchronous viewers (tree & table) Adapters provide content and labels Cancelable Customizable per view Model drives the view Model proxy interfaces model with viewer, firing deltas to describe what has changed in the model Platform provides model proxies for standard models
4
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 4 View Content Viewer Model Content Adapter Request Monitor retrieveChildren() Model Specific API add(…) done() setChildren()
5
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 5 View Update Viewer Element Model Proxy Model refresh() update() select() expand() Model Specific API installs Update Policy model deltas
6
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 6 Model Proxy (what) and Update Policy (when) What to update A model proxy reports deltas in a model When an element is added to a viewer, its associated model proxy (if any), is installed in the viewer. When the element is removed from the viewer, its model proxy is removed (disposed). Model drives the view update Factory is used to generate model proxy per element, per view When to update Update policy listens to deltas and updates viewer Created by viewer Platform provides generally useful policies (i.e. update immediately, delayed update, update on demand)
7
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 7 Model Proxy The interfaces: IModelProxyFactory createModelProxy(Object, IPresentationContext) IModelProxy init(IPresentationContext) Installed() dispose() add/removeModelChangedListener(IModelChangedListener) An model proxy updates a single instance of a model in a viewer A model proxy is installed on a specific context/viewer Fires element deltas for an instance of a model
8
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 8 Model Proxy cont’d An model proxy is usually contributed only for the root element in a model (per view) E.g., the model proxy for a standard debug model is contributed for IDebugTarget. The proxy listens to events in that target only, and fires corresponding deltas An implementer could choose to contribute proxies for each of its elements The debug platform contributes Debug view model proxies for: ILaunchManager – fires deltas as launches are added/removed ILaunch – fires deltas process and debug targets are added/terminated IProcess – fires delta when terminate event is fired
9
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 9 Model Deltas Deltas describe changes in a model and actions to take Tree structure similar to resource deltas Each node describes an element in the view and its changes (if any) Change types: ADDED, REMOVED, CHANGED, NOCHANGE Change details: CONTENT, STATE Actions: EXPAND, SELECT Eg. LaunchManager (NOCHANGE) Launch (NOCHANGE) DebugTarget (NOCHANGE) Thread (CHANGE, CONTENT+STATE, EXPAND) Frame (SELECT)
10
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 10 But Wait - There’s More Debug Context Manager Retargettable actions Step, terminate, etc., work on active context Debug view is default context provider, Flexible view wiring Variables view gets input from active context Expression view updates based on active context Pluggable source lookup based on active context
11
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 11 User Interaction Debug View Selection Actions (getAdapter IStep, etc) Source Lookup (getAdapter ISourceDisplay) Debug Context Manager Provides context Context activated
12
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 12 Demos Java Debugger Locks & monitors Thread groups Asynchronous Table Ticker table
13
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 13 Thread Groups 1.Added thread groups to our model (IJavaThreadGroup) 2.Implemented & registered adapters: Tree content adapter Label adapter 3.Implemented & registered model proxy Java debug target model proxy replaces the standard debug target model proxy, and generates paths to threads considering thread groups Subclass of standard debug target proxy and standard thread event handler. Overrides one method that generates path to a thread.
14
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 14 Next Steps High Priority Viewer enhancements (intended for 3.2) Support for SWT virtual tree Incremental content retrieval Tree table (columns in existing views) Pluggable cell editors Improved Java doc Other considerations (likely post 3.2) Multiple contexts and view sets Drag & drop (maybe 3.2) Consider use of table and tree models Re-useable model proxy hierarchy Re-useable update policies
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.