Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java')
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java43
1 files changed, 36 insertions, 7 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java
index f4ae937862d..9eb28458d57 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java
@@ -7,6 +7,7 @@ package org.eclipse.cdt.debug.mi.core.cdi.model;
import org.eclipse.cdt.debug.core.cdi.CDIException;
import org.eclipse.cdt.debug.core.cdi.ICDICondition;
import org.eclipse.cdt.debug.core.cdi.ICDILocation;
+import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint;
import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager;
import org.eclipse.cdt.debug.mi.core.cdi.Condition;
@@ -21,6 +22,17 @@ public class Breakpoint extends CObject implements ICDILocationBreakpoint {
ICDICondition condition;
MIBreakpoint miBreakpoint;
BreakpointManager mgr;
+ int type;
+ String tid;
+
+ public Breakpoint(BreakpointManager m, int kind, ICDILocation loc, ICDICondition cond, String threadId) {
+ super(m.getSession().getCurrentTarget());
+ mgr = m;
+ type = kind;
+ location = loc;
+ condition = cond;
+ tid = threadId;
+ }
public Breakpoint(BreakpointManager m, MIBreakpoint miBreak) {
super(m.getSession().getCurrentTarget());
@@ -39,13 +51,17 @@ public class Breakpoint extends CObject implements ICDILocationBreakpoint {
condition = null;
}
+ public boolean isDeferred() {
+ return (miBreakpoint == null);
+ }
+
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#getCondition()
*/
public ICDICondition getCondition() throws CDIException {
if (condition == null) {
- condition = new Condition(miBreakpoint.getIgnoreCount(),
- miBreakpoint.getCondition());
+ if (miBreakpoint != null)
+ condition = new Condition(miBreakpoint.getIgnoreCount(), miBreakpoint.getCondition());
}
return condition;
}
@@ -54,28 +70,36 @@ public class Breakpoint extends CObject implements ICDILocationBreakpoint {
* @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#getThreadId()
*/
public String getThreadId() throws CDIException {
- return miBreakpoint.getThreadId();
+ if (miBreakpoint != null)
+ return miBreakpoint.getThreadId();
+ return tid;
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#isEnabled()
*/
public boolean isEnabled() throws CDIException {
- return miBreakpoint.isEnabled();
+ if (miBreakpoint != null)
+ return miBreakpoint.isEnabled();
+ return false;
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#isHardware()
*/
public boolean isHardware() {
- return miBreakpoint.isHardware();
+ if (miBreakpoint != null)
+ return miBreakpoint.isHardware();
+ return (type == ICDIBreakpoint.HARDWARE);
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#isTemporary()
*/
public boolean isTemporary() {
- return miBreakpoint.isTemporary();
+ if (miBreakpoint != null)
+ return miBreakpoint.isTemporary();
+ return (type == ICDIBreakpoint.TEMPORARY);
}
/**
@@ -104,11 +128,16 @@ public class Breakpoint extends CObject implements ICDILocationBreakpoint {
*/
public ICDILocation getLocation() throws CDIException {
if (location == null) {
- location = new Location (miBreakpoint.getFile(),
+ if (miBreakpoint != null)
+ location = new Location (miBreakpoint.getFile(),
miBreakpoint.getFunction(),
miBreakpoint.getLine(),
miBreakpoint.getAddress());
}
return location;
}
+
+ public void setLocation(ICDILocation loc) {
+ location = loc;
+ }
}

Back to the top