[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[jdt-debug-dev] Common Questions about functionality in jdt.debug.core
|
Sorry to post here but I have had no luck in the newsgroups.
I am creating a plugin for my final year project that identifies design
patterns from static structure and dynamic execution traces.
For this my plugin has been creating MethodEntryBreakpoints, and
Watchpoints.
I create breakpoints by using the factories supplied by JDIDebugModel.
For example:
IJavaMethodEntryBreakpoint br = JDIDebugModel.createMethodEntryBreakpoint(..
IJavaWatchpoint wp = JDIDebugModel.createWatchpoint(..
I am also able to launch in DEBUG_MODE.
I have a JavaBreakpointListener class that implements the
breakpointHit() and installingBreakpoint() methods. In the former I just
print some execution information out to the console (for now) and the
latter I just return IJavaBreakpointListener.INSTALL;
In the breakpointHit() method I always return a
IJavaBreakpointListener.DONT_SUSPEND vote so I can trace what and when
methods are hit in the program execution, without suspending the VM.
For some reason LineBreakpoints and Watchpoints show as hitting the
breakpointHit() method of my listener however MethodBreakpoints do not.
When I check the .isInstalled() property for my breakpoints, it shows
them as not installed - which seems fine for everything but
MethodBreakpoints.
At no point do I directly add breakpoints to a BreakpointManager, as
from various posting it seemed that to make sure my breakpoint do not
suspend the VM I should create them invisibly i.e do not register them
with a BreakpointManager.
Can anyone suggest where I am going wrong?
Plus how do I gain access to objects of the type JavaValue,
JavaVariable, JavaClassObject, JavaClassType etc. I need to do some
decisions based on whether certain fields have been accessed, added to
etc to identify the dynamic behaviour of a design pattern.
I know this is a lot to ask, and possibly the wrong place to ask it, but
I cannot find any examples for these points anywhere. I have been
backwards and forwards through the jdt.debug.* plugins.
Thanks for your time.
Joe