1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-05 00:36:16 +02:00

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>
This commit is contained in:
Jonah Graham 2017-04-25 14:41:01 +01:00
parent a797534968
commit 98a578cf94

View file

@ -494,11 +494,14 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
IBreakpoint[] breakpoints = fBreakpointManager.getBreakpoints(fDebugModelId); IBreakpoint[] breakpoints = fBreakpointManager.getBreakpoints(fDebugModelId);
for (IBreakpoint breakpoint : breakpoints) { for (IBreakpoint breakpoint : breakpoints) {
if (supportsBreakpoint(breakpoint)) { if (supportsBreakpoint(breakpoint)) {
Map<String, Object> attributes = breakpoint.getMarker().getAttributes(); boolean filtered = isBreakpointEntirelyFiltered(dmc, (ICBreakpoint) breakpoint);
attributes.put(ATTR_DEBUGGER_PATH, NULL_STRING); if (!filtered) {
attributes.put(ATTR_THREAD_FILTER, extractThreads(dmc, (ICBreakpoint) breakpoint)); Map<String, Object> attributes = breakpoint.getMarker().getAttributes();
attributes.put(ATTR_THREAD_ID, NULL_STRING); attributes.put(ATTR_DEBUGGER_PATH, NULL_STRING);
platformBPs.put((ICBreakpoint) breakpoint, attributes); attributes.put(ATTR_THREAD_FILTER, extractThreads(dmc, (ICBreakpoint) breakpoint));
attributes.put(ATTR_THREAD_ID, NULL_STRING);
platformBPs.put((ICBreakpoint) breakpoint, attributes);
}
} }
} }
} catch (CoreException e) { } catch (CoreException e) {
@ -1343,16 +1346,21 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
}; };
countingRm.setDoneCount(fPlatformToAttributesMaps.size()); countingRm.setDoneCount(fPlatformToAttributesMaps.size());
for (final IBreakpointsTargetDMContext dmc : fPlatformToAttributesMaps.keySet()) { for (final IBreakpointsTargetDMContext dmc : fPlatformToAttributesMaps.keySet()) {
determineDebuggerPath(dmc, attrs, boolean filtered = isBreakpointEntirelyFiltered(dmc, (ICBreakpoint)breakpoint);
new RequestMonitor(getExecutor(), countingRm) { if (!filtered) {
@Override determineDebuggerPath(dmc, attrs,
protected void handleSuccess() { new RequestMonitor(getExecutor(), countingRm) {
installBreakpoint(dmc, (ICBreakpoint) breakpoint, @Override
attrs, countingRm); protected void handleSuccess() {
} installBreakpoint(dmc, (ICBreakpoint) breakpoint,
}); attrs, countingRm);
} }
});
} else {
countingRm.done();
}
}
} }
}); });