Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-debug-dev] Re: [jdt-debug-dev] Context view management released to HEAD

Furthermore, an IDebugContext should be able to specify a set of debug 
contexts that are active. For example, if a debug model is a proxy/wrapper 
to multiple underlying debug models (when doing cross language debugging 
with a mixed call stack), the set of views visible should be the superset 
of views defined by those debug models.

Thus, I propose the launch view obtains the IDebugContext adapter from the 
selection in the debug view, which has a method to return a collection of 
debug contexts to be active.

Darin





Darin Wright/Ottawa/IBM@IBMCA
Sent by: platform-debug-dev-admin@xxxxxxxxxxx
02/09/2004 02:14 PM
Please respond to platform-debug-dev
 
        To:     platform-debug-dev@xxxxxxxxxxx
        cc: 
        Subject:        Re: [platform-debug-dev] Re: [jdt-debug-dev] 
Context view    management released to HEAD


This suggests that we should use a level of indirection to retrieve the 
active debug context. For example, the launch view could ask for an 
IDebugContext adapter from the selected stack frame. If unavailable, the 
debug model ID would be used. When available, the wrappering model could 
provide an alternate "context id" via this interface (IDebugContext). The 
interface would have a single method to return the associated debug model 
context id.

Darin





Erin Harris/Toronto/IBM@IBMCA
Sent by: platform-debug-dev-admin@xxxxxxxxxxx
02/03/2004 09:28 AM
Please respond to platform-debug-dev
 
        To:     platform-debug-dev@xxxxxxxxxxx
        cc: 
        Subject:        Re: [platform-debug-dev] Re: [jdt-debug-dev] 
Context view    management released to HEAD







This could be a problem for debug adapters that wrapper other adapters.
Since the stack frame is wrappered, the model identifier of the wrapper
debug model is always given.  If the model identifier of the sub stack
frame is given then model presentations would have to use getAdapter
religiously since they will now be passed a wrappered stack frame (e.g.
JDIModelPresentation.getText(Object) will be passed a wrappered stack 
frame
instead of a JDIStackFrame).  Currently the wrapper debug model handles it
by calling the sub debug model and passing in the sub stack frame.


Erin



 
             Jared Burns 
             <jaredburns@acm.o 
             rg>                                                        To 


             Sent by:                  platform-debug-dev@xxxxxxxxxxx 
             platform-debug-de                                          cc 


             v-admin@eclipse.o 
             rg                                                    Subject 


                                       Re: [platform-debug-dev] Re: 
                                       [jdt-debug-dev] Context view 
             01/30/2004 02:03          management released to HEAD 
             PM 
 
 
             Please respond to 
             platform-debug-de 
                     v 
 
 




The support is stack-frame-based to support multi-language debuggers. If
you have JSP, Java, XSL, and XML all in the same stack, you want the
perspective to update for the different languages as stack frames are
selected. But there's no way to accurately predict which views should be
shown for the thread containing those frames. So the best (least
disruptive) bet is to not add or remove views when the user selects a
thread (or other debug element).

This raises an important issue, though. In order for the current support
to function, debugger providers will have to make sure that their stack
frames return different debug model identifiers if they want to show
different views for them.

Debugger providers (we know you're out there!), is this currently how
your stack frames work? If not, would you be willing to change your
implementations to make use of this support?

Thanks,
- Jared

On Fri, 2004-01-30 at 07:10, Darin Wright wrote:
> The new support looks good. Being able to open views "underneath"
existing
> views is a great improvement. As well, the extension points/bindings 
feel

> like the correct level of definition required from debuggers.
>
> Here are couple issues I found:
> * I noticed that the "context change" is based on a stack frame
selection.
> I am wondering if there is a specific reason that you chose a stack
frame,
> rather than a "debug element" of any kind. Should we be more generic?
> * Keeping track of views the user opens/closes manually is required (and
> we should persist this information). However, there appears to be a
> problem when I select the "Reset Perspective" action. This resets the
> debug perspective to its original state. This can cause views to close,
> which we (incorrectly) interpret as the user closing views. For example,
> after debugging some Java code, I reset the perspective, which closes 
the

> Display view and the Threads & Montiors view. When I debug Java again,
the
> views do not re-appear, as I would expect. Since the action I invoked 
was

> to "reset" the perspective, I would expect all cached information about
> the views to be "reset". We may need some more workbench support here -
> i.e. to be notified when a perspective reset is issued.
>
> Moving forward, how will action filtering be supported? Can we tie
> directly into the command/context filtering supplied by the workbench to
> filter debug model specific actions (i.e. by having debug model 
providers

> associate contributed actions with a context)?
>
> Darin
>
>
>
>
>
> Jared Burns <jaredburns@xxxxxxx>
> Sent by: jdt-debug-dev-admin@xxxxxxxxxxx
> 01/29/2004 07:49 PM
> Please respond to jdt-debug-dev
>
>         To:     platform-debug-dev@xxxxxxxxxxx, 
jdt-debug-dev@xxxxxxxxxxx
>         cc:
>         Subject:        [jdt-debug-dev] Context view management released
> to HEAD
>
>
> I've released the first cut of context-based view management for the
> Debug perspective to HEAD. The changes to org.eclipse.debug.ui require
> the org.eclipse.ui.workbench from HEAD (which requires the latest
> org.eclipse.jface).
>
> The Debug UI provides two new extension points. One for mapping debug
> model identifiers to context identifiers. And one for mapping views to a
> context.
>
> When a stack frame is selected in the Debug view, we look for a context
> that matches its model identifier. If one is found (and it doesn't match
> the current context), it then automatically opens views associated with
> that context, closes views associated with other contexts (but leave
> unassociated views alone), and activates views within the context as
> appropriate. New views are opened "underneath" existing views using a
> new API from Platform UI and we examine the view stack (also using new
> API) so as to not activate a view if another applicable view is already
> visible on top of it. This means that we minimize flickering and UI
> instability.
>
> Also, we notice when the user manually opens or closes a view, after
> which we will no longer automatically open or close it (this isn't
> currently persisted, but probably should be).
>
> There's a new button on the Debug view which lets you toggle this
> "linking" behavior on and off.
>
> Developers just using Java will find that the first time they launch,
> the Display and "Threads and Monitors" views will open stacked
> underneath other views. Other than that, there shouldn't be any
> differences.
>
> Debugger providers will want to make two changes. First, views that are
> currently added to the Debug perspective using the perspective extension
> shortcut should have visible="false" added to their extension so as to
> not clutter the Debug perspective before they're needed. Second,
> contributors should use the two new extension points to specify which
> views are associated with their debug model. By default, views
> associated with contexts in this way will be automatically opened and
> closed. But the extension point supports specifying whether a particular
> view should be automatically opened or closed.
>
> I haven't written up the schema yet, but interested parties can look at
> the extension provided by org.eclipse.jdt.debug.ui.
>
> - Jared
>
> _______________________________________________
> jdt-debug-dev mailing list
> jdt-debug-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/jdt-debug-dev
>
>
> _______________________________________________
> platform-debug-dev mailing list
> platform-debug-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/platform-debug-dev

_______________________________________________
platform-debug-dev mailing list
platform-debug-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-debug-dev


_______________________________________________
platform-debug-dev mailing list
platform-debug-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-debug-dev


_______________________________________________
platform-debug-dev mailing list
platform-debug-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-debug-dev




Back to the top