> find any getActiveContext() ). And as you said, it returns
> null since my command is in a service.
>
> Am I right about the above statements ?
>
> Thanks,
> Rohit
>
>
>
> On Thu, Jul 22, 2010 at 11:55 AM, Pawel Piech
> <
pawel.piech@xxxxxxxxxxxxx> wrote:
>
>
>       On 07/22/2010 08:47 AM, Rohit Girme wrote:
>
>               Hi,
>
>               Thanks Marc, things are a bit clearer than before.
>               I tried the things you suggested.
>
>               I used IRunControl.ISuspendedDMEvent instead of
> MIStopped. Then I use event.getDMContext(). However this
> gives me an instance of IContainerDMContext instead of
> IExecutionDMContext. If I use MIStopped then in the Variables
> view, if I select the DMC variable I see
>
>
> gdb[0].proc[].threadGroup[]gdb[0].proc[].OSthread[1].thread[1].
>
>               But if I use ISuspendedDMEvent, I see
>
>               gdb[0].proc[].threadGroup[]
>
>
>       If the stopped event causes the entire process to
> suspend (as is always the case with GDB all-stop mode), then
> the event sent by the run control service will be a
> IContainerSuspendedDMEvent.  The main subject of container
> suspended event is the container, but since you're after the
> thread that caused the suspend, you can get it from
> IContainerSuspendedDMEvent.getTriggeringContexts().
>
>
>
>               In DsfResumeCommand, IExecutionDMContext is
> acquired from DsfCommandRunnable#getContext(). I dont have
> access to that method since I am using DsfRunnable with
> DsfExecutor.submit() method (similar to PDATerminate in PDA
> example code. This is because I do not have Object element
> and IDebugCommandRequest request objects required in
> DsfCommandRunnable's constructor).
>
>               Hence I am still stuck at the same point. Hope
> the info I gave you helps in answering my question.
>
>
>       The context from Debug view is relevant if your command
> is to be triggered by some user action.  You can obtain the
> active debug context using DebugUITools.getActiveContext().
> However, if your command is in a service and is reacting to
> another service event then the UI debug context will be of no
> use to you.
>
>       Hope this helps,
>       Pawel
>
>
>
>
>
>               On Thu, Jul 22, 2010 at 7:14 AM, Marc Khouzam
> <
marc.khouzam@xxxxxxxxxxxx> wrote:
>
>
>                       Hi,
>
>                       DSF is a generic framework so, as Pawel
> said, it's hard to answer your question.
>                       However, if you are asking about
> DSF-GDB, which is a specific implementation of DSF, then it
> becomes easier.
>
>                       Since you talk about MIStopped events
> which are a DSF-GDB concept, I will assume you are asking
> about DSF-GDB.
>
>                       Using the RunControl service does
> require an IExecutionDMC.  Of course, you should use the DMC on which
>                       you want to perform the RunControl
> operation.  An IExecutionDMC represents either a thread or a
> process in DSF-GDB.
>                       An IContainerDMC represents a process
> only.  So, for example, if you want to resume(), you must
> specify the IExecutionDMC
>                       for the thread (or process, if you
> support resuming a process) that you want to resume.
>
>                       How to you find that IExectionDMC?  It
> entirely depends on what you are doing at the time.  Did GDB
> just stop and you
>                       want to get the ExecutionDMC that
> caused the stop?  That is when you would use the MIStopped
> event, although I recommend
>                       using ISuspendedEvent.  But if you are
> trying to do a resume(), normally, it is the currently
> selected element in the
>                       Debug View that holds the IDMContext
> you want.  You can look at how DsfResumeCommand gets the
> context as provided
>                       by the platform.
>
>                       I hope this helps.
>
>                       Marc
>
>                       ________________________________
>                       From: 
cdt-dev-bounces@xxxxxxxxxxx
> [
cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Rohit Girme
> [
rgirme@xxxxxxx]
>                       Sent: July 21, 2010 10:00 PM
>                       To: CDT General developers list.
>                       Subject: Re: [cdt-dev] Obtaining
> IExecutionDMContext object in DSF
>
>
>                       Hi,
>
>                       Yes. The missing was variable was done
> intentionally. Eclipse would have errored out in that case.
>                       I intend to use IExecutionDMContext
> object with IRunControl methods like suspend, resume,
> canSuspend etc. Also IStack methods like getTopFrame etc.
> Generally speaking many methods in the DSF debug plugin
> require IExecutionDMContext.
>                       Hence my questions.
>
>                       Thanks,
>                       Rohit
>
>
>                       On Wed, Jul 21, 2010 at 5:39 PM, Pawel
> Piech
> <
pawel.piech@xxxxxxxxxxxxx<mailto:
pawel.piech@xxxxxxxxxxxxx>> wrote:
>                       The statement below would not compile
> because there seems a variable name missing from the second
> declaration.  But if I understand its intent correctly, it's
> equivalent to:
>
>                       IExecutionDMContext dmc =
> (event.getDMContext() instanceof IContainerDMContext) ?
> event.getDMContext() : null;
>
>                       Without understanding what you want to
> do with the context, i can't really answer your questions.
>
>                       Cheers,
>                       Pawel
>
>                       On 07/21/2010 02:30 PM, Rohit Girme wrote:
>                       Hi,
>
>                       I am trying to use/call DSF services
> for some time now. For many of these services related to "run
> control" we need an IExecutionContext object. The way I do it
> is as follows :
>
>                                IContainerDMContext  abc =
> DMContexts.getAncestorOfType(  event.getDMContext(),
> IContainerDMContext.class   )
>
>                                 if (abc != null)
>                                  {
>
>                                    IExecutionDMContext  =
> !event.getDMContext().equals( abc ) ? event.getDMContext() : null
>
>                                  }
>
>                       This piece of code is inside an event
> listener, which listenes for an MIStopped event. So
> basically, I get  " IExecutionDMContext " from MIStopped
> event object. I tried using ISuspendedDMEvent instead, to
> make it generic. However it does not give the same result. I
> found the above piece of code in some DSF file. So I know
> some DSF class uses it. I have been looking through the
> source code for a while now. But this is the only way I found
> that works.
>
>                       My questions are :
>
>                       Is the process I described above, the
> right one ?
>                       Is there any better way to get the
> IExecutionDMContext object ? Something more generic.
>
>
>                       --
>                       Thanks & Regards,
>                       Rohit Girme
>
>
>
>
>
>       _______________________________________________
>       cdt-dev mailing list
>       
cdt-dev@xxxxxxxxxxx
>       
https://dev.eclipse.org/mailman/listinfo/cdt-dev
>
>
>
>
>
>
> --
> Thanks & Regards,
> Rohit Girme
>
>
> _______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev