[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [cdt-dev] Debug actions are registered twice
|
I believe the reason they appear twice is that the DSF-GDB
debugger will set the org.eclipse.cdt.dsf.gdb.ui.debuggerActiveproperty to true as long as
the current debug context is an IDMVMContext. This is
done in EvaluationContextManager (the DSF-GDB version). So, when any other
DSF-based
debugger is has the current debug context, the DSF-GDB
class will stil turn on this property. My bad.
One solution would be to move this
EvaluationContextManager down to DSF and make it available to all DSF-based
debuggers.
The reason I couldn't use the existing one
EvaluationContextManager, is that I needed to check if the debug context was a
DSF or CDI context,
but, unlike CDI, DSF does not have
an interface I could check for in cdt.debug.ui.
You'll notice that all the classes that actually run the
actions are the ones from cdt.debug.ui and are
retargettable.
I believe the only issue was the
EvaluationContextManager. Now that I think about it, maybe I could have
re-used
the registration of those actions of cdt.debug.ui by simply
re-using the same system property instead of creating a new
one.
But even with this improvement, the problem would remain
because DSF-GDB check for IDMVMContext.
So, we can clean this up a bit and move
EvaluationContextManager down to DSF.
Or does someone have another idea?
Marc
Indeed, cdt.debug.ui seems like the most intuitive home for actions
that are not gdb-specific, but I suspect the problem is that they were not
designed to be retargetable and so each debugger needs to contribute its own
set. The actions that come from platform debug (run, stop, step, etc)
are retargetable. However, the Debug actions you're seeing duplicated are
contributed by CDT.
Marc added these actions to DSF-GDB
via
https://bugs.eclipse.org/bugs/show_bug.cgi?id=300096
and
then I believe Nokia abstracted them out to be common to base DSF(so EDC could
use them).
You'd have to ask them if there's a reason (other than lack
of time) why we didn't make these common retargetable actions in CDT. It's
possible such a mechanism isn't yet available in CDT debug and, again, that
there was just no time to introduce it for Helios.
But, at the end of
the day, the current approach is working. Forget the fact that they're
registered more than once. They aren't appearing more than once even when you
have simultaneous CDI and DSF sessions going. Again, why it's happening in
your case needs further investigation.
John
At 10:27 AM
4/27/2010, Mehregani, Navid wrote:
Content-Language:
en-US
Content-Type:
multipart/alternative;
boundary="_000_496565EC904933469F292DDA3F1663E602CB2C5F9Edlee06enttico_"
Yes, Ive noticed that too. Likely has
something to do with the fact that our debugger is based on DSF.
I
have no idea where org.eclipse.cdt.dsf.gdb.ui.debuggerActive property is
set and cleared. May be (just a guess), this property doesnt get
cleared when we launch our custom debug session?!
Im really
curious whether its necessary to register these actions twice.
Other non-GDB-based-debuggers should be able to make use of
these contributions so Im not sure if it makes sense to move them to the
common gdb plugins. It sort of makes sense for them to be in
cdt.debug.ui.
- Navid
From:
cdt-dev-bounces@xxxxxxxxxxx [ mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of
John Cortell
Sent: Tuesday, April 27, 2010 11:13
AM
To: CDT General developers list.; CDT General developers
list.
Subject: Re: [cdt-dev] Debug actions are registered
twice
I wonder if
the new common gdb plugins I added a few weeks could save the day
here.
One thing I question, though....launching a DSF-GDB session and
then a CDI-GDB session doesn't result in these actions appearing twice. Why
is it happening when your debugger is in the mix?
John
At
10:00 AM 4/27/2010, Mehregani, Navid wrote:
Content-Language:
en-US
Content-Type:
multipart/related;
boundary="_004_496565EC904933469F292DDA3F1663E602CB2C5F5Fdlee06enttico_";
type="multipart/alternative"
Im just wondering,
is there a need to register debug actions Run to Line, Move to Line, Resume
at Line, and Add Watch Expressiontwice in the editors context menu?
These
actions are registered once in org.eclipse.cdt.debug.ui and again under
org.eclipse.cdt.dsf.gdb.ui. The former plug-in looks for
org.eclipse.cdt.debug.ui.debuggerActivesystem property and latter plug-in
looks for org.eclipse.cdt.dsf.gdb.ui.debuggerActiveproperty in order to
display the actions.
We have a proprietary debug engine based
on DSF. It doesnt use GDB at all. The problem occurs when I
start a DSF-GDB debug session, terminate it, and start our custom DSF-based
debug session. This will result in the debug actions getting
registered
twice:
_______________________________________________
cdt-dev
mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev