1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +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);
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();
}
}
}
});