Skip to main content

[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


Back to the top