> 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