Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java')
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java30
1 files changed, 23 insertions, 7 deletions
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java
index ecf10d6b089..abc6e6aa5c0 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java
@@ -166,7 +166,22 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
fBreakpoints.put(ctx, map);
return map;
}
-
+
+ /**
+ * Create a new effective breakpoint data object
+ *
+ * @param breakpoint
+ * backend breakpoint to create DSF object from
+ * @return breakpoint data object
+ * @since 5.3
+ */
+ @ThreadSafe
+ public MIBreakpointDMData createMIBreakpointDMData(MIBreakpoint breakpoint) {
+ @SuppressWarnings("deprecation")
+ MIBreakpointDMData data = new MIBreakpointDMData(breakpoint);
+ return data;
+ }
+
/**
* Create a new MI breakpoint
*
@@ -451,7 +466,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
MIBreakpoint[] breakpoints = getData().getMIBreakpoints();
IBreakpointDMContext[] result = new IBreakpointDMContext[breakpoints.length];
for (int i = 0; i < breakpoints.length; i++) {
- MIBreakpointDMData breakpoint = new MIBreakpointDMData(breakpoints[i]);
+ MIBreakpointDMData breakpoint = createMIBreakpointDMData(breakpoints[i]);
String reference = breakpoint.getReference();
result[i] = new MIBreakpointDMContext(MIBreakpoints.this, new IDMContext[] { context }, reference);
breakpointContext.put(reference, breakpoint);
@@ -507,8 +522,9 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
}
// No need to go to the back-end for this one
- IBreakpointDMData breakpointCopy = new MIBreakpointDMData(contextBreakpoints.get(breakpoint.getReference()));
- drm.setData(breakpointCopy);
+ MIBreakpointDMData breakpointDMData = contextBreakpoints.get(breakpoint.getReference());
+ IBreakpointDMData breakpointDMDataCopy = breakpointDMData.copy();
+ drm.setData(breakpointDMDataCopy);
drm.done();
}
@@ -699,7 +715,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
}
// Create a breakpoint object and store it in the map
- final MIBreakpointDMData newBreakpoint = new MIBreakpointDMData(getData().getMIBreakpoints()[0]);
+ final MIBreakpointDMData newBreakpoint = createMIBreakpointDMData(getData().getMIBreakpoints()[0]);
String reference = newBreakpoint.getNumber();
if (reference.isEmpty()) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, REQUEST_FAILED, BREAKPOINT_INSERTION_FAILURE, null));
@@ -789,7 +805,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
}
// Create a breakpoint object and store it in the map
- final MIBreakpointDMData newBreakpoint = new MIBreakpointDMData(getData().getMIBreakpoints()[0]);
+ final MIBreakpointDMData newBreakpoint = createMIBreakpointDMData(getData().getMIBreakpoints()[0]);
String reference = newBreakpoint.getNumber();
if (reference.isEmpty()) {
drm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, REQUEST_FAILED, WATCHPOINT_INSERTION_FAILURE, null));
@@ -879,7 +895,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
}
// Create a breakpoint object and store it in the map
- final MIBreakpointDMData newBreakpoint = new MIBreakpointDMData(miBkpt);
+ final MIBreakpointDMData newBreakpoint = createMIBreakpointDMData(miBkpt);
String reference = newBreakpoint.getNumber();
if (reference.isEmpty()) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, REQUEST_FAILED, CATCHPOINT_INSERTION_FAILURE, null));

Back to the top