diff options
author | Eugene Tarassov | 2013-02-17 19:40:03 +0000 |
---|---|---|
committer | Eugene Tarassov | 2013-02-17 19:40:03 +0000 |
commit | faa831aa55d496d33b800bad15f7bdcf4eea13a6 (patch) | |
tree | d68fc2f197c2a18d693ec7a89edc44387a905424 | |
parent | 0ef7371b53eaf6695a1459e2054dd5a98bb9c6ca (diff) | |
download | org.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.java | 18 |
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); |