1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

- First implementation of watchpoints

- Improved JUnit suite
- Fixed a couple of glitches in the previous delivery
This commit is contained in:
Francois Chouinard 2007-12-03 23:07:40 +00:00
parent 84e4230f31
commit 72fd69e4f1

View file

@ -40,6 +40,9 @@ public interface IBreakpoints extends IDsfService {
*/
public interface IDsfBreakpoint {
// Breakpoint types
public static enum IDsfBreakpointNature { BREAKPOINT, WATCHPOINT, CATCHPOINT, TRACEPOINT };
// Minimal breakpoint properties
public static final String DSFBREAKPOINT = "org.eclipse.dd.dsf.debug.service.breakpoint"; //$NON-NLS-1$
public static final String FILE_NAME = DSFBREAKPOINT + ".fileName"; //$NON-NLS-1$
@ -49,13 +52,18 @@ public interface IBreakpoints extends IDsfService {
public static final String IGNORE_COUNT = DSFBREAKPOINT + ".ignoreCount"; //$NON-NLS-1$
public static final String IS_ENABLED = DSFBREAKPOINT + ".isEnabled"; //$NON-NLS-1$
// Minimal watchpoint properties
public static final String EXPRESSION = DSFBREAKPOINT + ".expression"; //$NON-NLS-1$
public static final String READ = DSFBREAKPOINT + ".read"; //$NON-NLS-1$
public static final String WRITE = DSFBREAKPOINT + ".write"; //$NON-NLS-1$
public Object getReference();
public IDsfBreakpointNature getNature();
public Map<String,Object> getProperties();
public Object getProperty(String key, Object defaultValue);
public Object setProperty(String key, Object value);
// public void setProperties(Map<String,Object> properties);
};
/**
@ -97,11 +105,12 @@ public interface IBreakpoints extends IDsfService {
* @param breakpoint the breakpoint to insert
* @param drm the DRM returning the breakpoint reference
*/
public void addBreakpoint(IBreakpointsTargetDMContext context, IDsfBreakpoint breakpoint,
public void addBreakpoint(IBreakpointsTargetDMContext context,
IDsfBreakpoint breakpoint,
DataRequestMonitor<IDsfBreakpointDMContext> drm);
/**
* Removes the breakpoint on the target.
* Removes the breakpoint or watchpoint on the target.
*
* If the breakpoint doesn't exist, silently ignore it.
*
@ -113,19 +122,42 @@ public interface IBreakpoints extends IDsfService {
IDsfBreakpointDMContext dmc, RequestMonitor rm);
/**
* Updates the breakpoint properties on the target.
* Updates the breakpoint or watchpoint properties on the target.
*
* To add/update/remove a property, simply create a map with
* the desired value(s) for the given key(s).
*
* Properties that affect the breakpoint nature or location
* should not be updated. Instead, the breakpoint should be
* removed then re-inserted.
*
* A null value is used for removal of a property e.g.:
* properties.set(FUNCTION, null);
*
* @param context the execution context of the breakpoint
* @param dmc the reference of breakpoint to remove
* @param dmc the reference of breakpoint to modify
* @param rm the asynchronous request monitor
*/
public void updateBreakpoint(IBreakpointsTargetDMContext context,
IDsfBreakpointDMContext dmc, Map<String,Object> properties,
DataRequestMonitor<IDsfBreakpointDMContext> drm);
/**
* Adds a watchpoint on the target.
*
* The watchpoint reference is returned in the DRM. The actual watchpoint
* object can be later be retrieved using getBreakpoint(reference).
*
* E.g.:
* IDsfBreakpointDMContext ref = addWatchpoint(...);
* IDsfBreakpoint bp = getBreakpoint(ref);
*
* @param context the execution context of the watchpoint
* @param watchpoint the watchpoint to insert
* @param rm the asynchronous request monitor
*/
public void addWatchpoint(IBreakpointsTargetDMContext context,
IDsfBreakpoint watchpoint,
DataRequestMonitor<IDsfBreakpointDMContext> drm);
}