Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2013-02-17 19:40:03 +0000
committerEugene Tarassov2013-02-17 19:40:03 +0000
commitfaa831aa55d496d33b800bad15f7bdcf4eea13a6 (patch)
treed68fc2f197c2a18d693ec7a89edc44387a905424
parent0ef7371b53eaf6695a1459e2054dd5a98bb9c6ca (diff)
downloadorg.eclipse.tcf-faa831aa55d496d33b800bad15f7bdcf4eea13a6.tar.gz
org.eclipse.tcf-faa831aa55d496d33b800bad15f7bdcf4eea13a6.tar.xz
org.eclipse.tcf-faa831aa55d496d33b800bad15f7bdcf4eea13a6.zip
TCF Debugger: fixed: breakpoint action "Resume" should abort other breakpoint actions on all contexts in same run control group. Not doing that causes bogus error messages in the debugger.
-rw-r--r--plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/TCFBreakpointActions.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/TCFBreakpointActions.java b/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/TCFBreakpointActions.java
index 18db15ef0..6291c22b7 100644
--- a/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/TCFBreakpointActions.java
+++ b/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/TCFBreakpointActions.java
@@ -10,8 +10,10 @@
*******************************************************************************/
package org.eclipse.tcf.internal.cdt.ui;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.eclipse.cdt.debug.core.CDebugCorePlugin;
@@ -26,8 +28,6 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.tcf.internal.debug.actions.TCFAction;
import org.eclipse.tcf.internal.debug.model.TCFBreakpointsModel;
@@ -130,6 +130,20 @@ public class TCFBreakpointActions {
return;
}
resumed = true;
+ String rc_grp = ctx_data.getRCGroup();
+ if (rc_grp != null) {
+ List<BreakpointActionAdapter> l = new ArrayList<BreakpointActionAdapter>();
+ for (BreakpointActionAdapter a : active_actions.values()) {
+ if (a.node.isDisposed()) continue;
+ if (a == BreakpointActionAdapter.this) continue;
+ TCFDataCache<IRunControl.RunControlContext> a_ctx_cache = a.node.getRunContext();
+ if (!a_ctx_cache.validate(this)) return;
+ IRunControl.RunControlContext a_ctx_data = ctx_cache.getData();
+ if (a_ctx_data == null) continue;
+ if (rc_grp.equals(a_ctx_data.getRCGroup())) l.add(a);
+ }
+ for (BreakpointActionAdapter a : l) a.abort();
+ }
ctx_data.resume(IRunControl.RM_RESUME, 1, new IRunControl.DoneCommand() {
public void doneCommand(IToken token, Exception error) {
if (error != null && !aborted) error(error);

Back to the top