Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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


Download ppt "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."

Similar presentations


Ads by Google