Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonah Graham2017-04-25 09:41:01 -0400
committerJonah Graham2017-04-25 09:42:47 -0400
commit98a578cf9460555279db69eface8bf59cdbf50db (patch)
tree1e16ed1f274d58222f918691179e418fdd4949c2 /dsf-gdb
parenta79753496813f5cbf133afe8f4206d5a5db01f4d (diff)
downloadorg.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.java38
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 b1f76e42b6..c8bedc068a 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();
+ }
+ }
}
});

Back to the top