Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-debug-dev] Support for generic "watch expressions/items" in the debug platform


In 3.0, the notion of an IWatchExpression has been added to the debug platform. An IWatchExpression is an extension of an IExpression that gets told when to update (i.e. when it's #setContext(...) method is called). The Java watch items have been migrated to be IWatchExpressions, and they update when the selection in the debug view changes (on step events, user selections, etc). While doing that work, it became apparent that we can probably generalize the implementation of watch expressions into the platform, to make them more "shareable" among debug models. We intend to do the initial work in M3.

The goals are this:
(1) Have one implementation of watch expressions
(2) Have one set of actions for creating/editing watch expressions
(3) Provide persistence of watch expressions in the debug platform

The proposed approach it this:
(1) Provide an implementation of IWatchExpression in the debug platform, with a factory method to create a new watch _expression_
(2) Define an extension point for debug models to contribute a debug model specific delegate for computing the value of an _expression_. When an _expression_ is provided with a context (i.e. selection in the debug view), the delegate associated with the selected debug model is consulted for a value.
(3) Provide one set of actions in the UI for creating/editing/removing watch expressions
(4) Provide some hooks for debug model specific UIs for creating/editing watch expressions (for example, to provide things such as code assist).

Comments/suggestions welcome.

Darin

Back to the top