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 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 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(); + } + } } });