Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] multi debug context stepping in DSF

Your guess is correct. 

Calling refresh() in my LaunchVMProvider causes a change in the debug context to be fired - therefore toolbars are updated. 
But if I have two threads selected, there won't be debug context change event. 

As soon as I apply the patch for https://bugs.eclipse.org/bugs/show_bug.cgi?id=345020 that is also fixed - refresh will trigger debug context change for a multiply selected items. 

Thanks a lot Mark. 
I've learned a handy way to trigger an update of the debug view :)

Dobrin


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Marc Khouzam
Sent: Thursday, July 21, 2011 3:37 PM
To: 'CDT General developers list.'
Subject: Re: [cdt-dev] multi debug context stepping in DSF

Yes, Refresh() cause the buttons to refresh, but that is because
is causes a re-selection in the Debug view.  I've never
tried it with a multi-select to see if it keeps the same
selection as before... 

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Alexiev, Dobrin
> Sent: Thursday, July 21, 2011 3:36 PM
> To: CDT General developers list.
> Subject: Re: [cdt-dev] multi debug context stepping in DSF
> 
> The Tree part of the debug view updates perfectly ( shows the 
> new stack of the threads, their running state, etc.). 
> I have hard time updating the Step/Resume/Suspend actions/toolbars. 
> If I call Refresh will that update the actions on the toolbar too? 
> 
> By examining the call graph of DsfResumeCommand.canExecute() 
> I couldn't see that will happen. 
> I'll try calling refresh() anyway, see if that will do. 
> 
> Thanks
> Dobrin
> 
> 
> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Marc Khouzam
> Sent: Thursday, July 21, 2011 3:27 PM
> To: 'CDT General developers list.'
> Subject: Re: [cdt-dev] multi debug context stepping in DSF
> 
> > -----Original Message-----
> > From: cdt-dev-bounces@xxxxxxxxxxx 
> > [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Alexiev, Dobrin
> > Sent: Thursday, July 21, 2011 11:26 AM
> > To: CDT General developers list.
> > Subject: Re: [cdt-dev] multi debug context stepping in DSF
> > 
> > I don't know how to update a specific debug view button in DSF. 
> > If there is such way, please let me know. 
> 
> Would the generic event we talked about do it?
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=350170
> 
> > >>> Should the Suspended or Resumed event cause the views to 
> > refresh?  
> > I think platform doesn't know anything about DSF Suspend and 
> > Resume events therefore can't handle them. 
> 
> The VMNodes listen for those events and generate deltas.
> I thought that could trigger a refresh.
> 
> I cheated myself for Tracepoints by calling the refresh()
> method.  You can have a look at how LaunchVMProvider
> handles ITracingStoppedDMEvent.  But I'm hoping
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=350170
> will make this cleaner.
> 
> Marc
> 
> > Here is my stack trace when DsfResumeCommand.canExecute() 
> > gets called. 
> > 
> > Thread [main] (Suspended (breakpoint at line 45 in 
> > org.eclipse.cdt.dsf.debug.ui.actions.DsfResumeCommand))	
> > 	
> > org.eclipse.cdt.dsf.debug.ui.actions.DsfResumeCommand.canExecu
> > te(org.eclipse.debug.core.commands.IEnabledStateRequest) line: 45	
> > 	
> > org.eclipse.debug.internal.ui.commands.actions.DebugCommandSer
> > vice.updateCommand(java.lang.Class, java.lang.Object[], 
> > org.eclipse.debug.internal.ui.commands.actions.IEnabledTarget[
> > ]) line: 182	
> > 	
> > org.eclipse.debug.internal.ui.commands.actions.DebugCommandSer
> > vice.postUpdate(org.eclipse.jface.viewers.ISelection) line: 153	
> > 	
> > org.eclipse.debug.internal.ui.commands.actions.DebugCommandSer
> > vice.debugContextChanged(org.eclipse.debug.ui.contexts.DebugCo
> > ntextEvent) line: 245	
> > 	
> > org.eclipse.debug.internal.ui.contexts.DebugWindowContextServi
> > ce$1.run() line: 194	
> > 	
> > org.eclipse.core.runtime.SafeRunner.run(org.eclipse.core.runti
> > me.ISafeRunnable) line: 42	
> > 	
> > org.eclipse.debug.internal.ui.contexts.DebugWindowContextServi
> > ce.notify(org.eclipse.debug.ui.contexts.DebugContextEvent, 
> > java.lang.Object[]) line: 192	
> > 	
> > org.eclipse.debug.internal.ui.contexts.DebugWindowContextServi
> > ce.notify(org.eclipse.debug.ui.contexts.DebugContextEvent) 
> line: 181	
> > 	
> > org.eclipse.debug.internal.ui.contexts.DebugWindowContextServi
> > ce.debugContextChanged(org.eclipse.debug.ui.contexts.DebugCont
> > extEvent) line: 390	
> > 	
> > org.eclipse.debug.ui.contexts.AbstractDebugContextProvider$1.r
> > un() line: 79	
> > 
> > going throw the call graph of 
> > IDebugCommandHandler.canExecute() I didn't see anything 
> > useful I can hang on to. 
> > 
> > Dobrin
> > 
> > 
> > -----Original Message-----
> > From: cdt-dev-bounces@xxxxxxxxxxx 
> > [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Marc Khouzam
> > Sent: Thursday, July 21, 2011 11:02 AM
> > To: 'CDT General developers list.'
> > Subject: Re: [cdt-dev] multi debug context stepping in DSF
> > 
> > > -----Original Message-----
> > > From: cdt-dev-bounces@xxxxxxxxxxx 
> > > [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Alexiev, Dobrin
> > > Sent: Wednesday, July 20, 2011 5:26 PM
> > > To: CDT General developers list.
> > > Subject: [cdt-dev] multi debug context stepping in DSF
> > > 
> > > I am trying to implement multi context stepping. 
> > > 
> > > First, I overwrote DsfSuspendCommand, DsfResumeCommand and 
> > > DsfStep*Command to enabled the commands if multiple execution 
> > > context are selected.
> > > 
> > > Next, When I multi select and execute Suspend/Step/Resume I 
> > > don't want the selection to change, because the assumption is 
> > > the user will continue with multi select operations. To 
> > > achieve that I overwrote DefaultDsfSelectionPolicy to block 
> > > the change of selection if currently multiple execution 
> > > context are selected. 
> > > 
> > > Now the next problem - since there is no debug context 
> > > change, my Suspend/Step/Resume commands don't update - they 
> > > reflect the old state. 
> > 
> > I'm not entirely sure how the view refreshing logic works.
> > Should the Suspended or Resumed event cause the views
> > to refresh?  Or do we really need a new selection to happen?
> > 
> > > 
> > > Does anyone know what is the right way to update the 
> > > Suspend/Step/Resume when at the same time the selection 
> > > change is being blocked. 
> > > 
> > > Thanks
> > > Dobrin
> > > 
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > cdt-dev mailing list
> > > cdt-dev@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> > > 
> > _______________________________________________
> > cdt-dev mailing list
> > cdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> > _______________________________________________
> > cdt-dev mailing list
> > cdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> > 
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> 
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top