diff options
author | Jonah Graham | 2017-04-25 13:41:01 +0000 |
---|---|---|
committer | Jonah Graham | 2017-04-25 13:42:47 +0000 |
commit | 98a578cf9460555279db69eface8bf59cdbf50db (patch) | |
tree | 1e16ed1f274d58222f918691179e418fdd4949c2 /dsf-gdb | |
parent | a79753496813f5cbf133afe8f4206d5a5db01f4d (diff) | |
download | org.eclipse.cdt-98a578cf9460555279db69eface8bf59cdbf50db.tar.gz org.eclipse.cdt-98a578cf9460555279db69eface8bf59cdbf50db.tar.xz org.eclipse.cdt-98a578cf9460555279db69eface8bf59cdbf50db.zip |
Bug 515768: Don't install BPs that are entirely filtered
This check already existed for modifying breakpoints, but didn't exist
for creating new breakpoints or installing initial breakpoints.
Change-Id: I5ff5ce0b3ac603ccffa49bd98d60f7202505a7bd
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Diffstat (limited to 'dsf-gdb')
-rw-r--r-- | dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java index b1f76e42b67..c8bedc068a0 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java @@ -494,11 +494,14 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo IBreakpoint[] breakpoints = fBreakpointManager.getBreakpoints(fDebugModelId); for (IBreakpoint breakpoint : breakpoints) { if (supportsBreakpoint(breakpoint)) { - Map<String, Object> attributes = breakpoint.getMarker().getAttributes(); - attributes.put(ATTR_DEBUGGER_PATH, NULL_STRING); - attributes.put(ATTR_THREAD_FILTER, extractThreads(dmc, (ICBreakpoint) breakpoint)); - attributes.put(ATTR_THREAD_ID, NULL_STRING); - platformBPs.put((ICBreakpoint) breakpoint, attributes); + boolean filtered = isBreakpointEntirelyFiltered(dmc, (ICBreakpoint) breakpoint); + if (!filtered) { + Map<String, Object> attributes = breakpoint.getMarker().getAttributes(); + attributes.put(ATTR_DEBUGGER_PATH, NULL_STRING); + attributes.put(ATTR_THREAD_FILTER, extractThreads(dmc, (ICBreakpoint) breakpoint)); + attributes.put(ATTR_THREAD_ID, NULL_STRING); + platformBPs.put((ICBreakpoint) breakpoint, attributes); + } } } } catch (CoreException e) { @@ -1343,16 +1346,21 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo }; countingRm.setDoneCount(fPlatformToAttributesMaps.size()); - for (final IBreakpointsTargetDMContext dmc : fPlatformToAttributesMaps.keySet()) { - determineDebuggerPath(dmc, attrs, - new RequestMonitor(getExecutor(), countingRm) { - @Override - protected void handleSuccess() { - installBreakpoint(dmc, (ICBreakpoint) breakpoint, - attrs, countingRm); - } - }); - } + for (final IBreakpointsTargetDMContext dmc : fPlatformToAttributesMaps.keySet()) { + boolean filtered = isBreakpointEntirelyFiltered(dmc, (ICBreakpoint)breakpoint); + if (!filtered) { + determineDebuggerPath(dmc, attrs, + new RequestMonitor(getExecutor(), countingRm) { + @Override + protected void handleSuccess() { + installBreakpoint(dmc, (ICBreakpoint) breakpoint, + attrs, countingRm); + } + }); + } else { + countingRm.done(); + } + } } }); |