progress report debug platform 3 2 m4 n.
Skip this Video
Download Presentation
Progress Report - Debug Platform (3.2 M4)

Loading in 2 Seconds...

play fullscreen
1 / 14

Progress Report - Debug Platform (3.2 M4) - PowerPoint PPT Presentation

  • Uploaded on

Progress Report - Debug Platform (3.2 M4). State of 3.2 M4 Some Demos Next Steps. Progress Summary. The goal: The debug platform should support arbitrary debug architectures and implementations of debuggers. The good news:

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Progress Report - Debug Platform (3.2 M4)' - lisandra-church

Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
progress report debug platform 3 2 m4
Progress Report - Debug Platform (3.2 M4)
  • State of 3.2 M4
  • Some Demos
  • Next Steps
progress summary
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…
what we have
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
view content
View Content


Content Adapter

Model Specific API





Request Monitor


view update
View Update


Model Proxy



Model Specific API

model deltas


Update Policy





model proxy what and update policy when
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)
model proxy
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
model proxy cont d
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
model deltas
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 details: CONTENT, STATE
      • Actions: EXPAND, SELECT
  • Eg. LaunchManager (NOCHANGE)
    • Launch (NOCHANGE)
      • DebugTarget (NOCHANGE)
          • Frame (SELECT)
but wait there s more
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
user interaction
User Interaction


(getAdapter IStep, etc)

Context activated




Provides context

Debug Context


Context activated

Source Lookup

(getAdapter ISourceDisplay)

  • Java Debugger
    • Locks & monitors
    • Thread groups
  • Asynchronous Table
    • Ticker table
thread groups
Thread Groups
  • Added thread groups to our model (IJavaThreadGroup)
  • Implemented & registered adapters:
    • Tree content adapter
    • Label adapter
  • 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.
next steps
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