Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Khouzam2014-09-17 20:12:58 +0000
committerMarc Khouzam2014-09-22 14:11:35 +0000
commit8d56765e6b4a42080983a7541559bfee0825d4c2 (patch)
tree325d472dd83af7e4f1efb1988701b2db3fd85d7c /dsf-gdb/org.eclipse.cdt.dsf.gdb/src
parentb92677b1496dec2950cc8c3371cff7e522001089 (diff)
downloadorg.eclipse.cdt-8d56765e6b4a42080983a7541559bfee0825d4c2.tar.gz
org.eclipse.cdt-8d56765e6b4a42080983a7541559bfee0825d4c2.tar.xz
org.eclipse.cdt-8d56765e6b4a42080983a7541559bfee0825d4c2.zip
Bug 444395 - Breakpoints don't get set for second session.
Change-Id: Ifa857cc2e9de00bb2f2a86b9d5e73536294dd01d Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com> Reviewed-on: https://git.eclipse.org/r/33517 Reviewed-on: https://git.eclipse.org/r/33573
Diffstat (limited to 'dsf-gdb/org.eclipse.cdt.dsf.gdb/src')
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java19
1 files changed, 11 insertions, 8 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 1641bf1b904..059841aba77 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
@@ -1876,18 +1876,15 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
List<IExecutionDMContext[]> threads = new ArrayList<IExecutionDMContext[]>(1);
try {
- // Retrieve the targets
+ // Retrieve all existing targets.
+ // Note that these targets can be from different debugging sessions since
+ // they are associated with the platform breakpoint.
IDsfBreakpointExtension filterExtension = getFilterExtension(breakpoint);
IContainerDMContext[] procTargets = filterExtension.getTargetFilters();
- // If no target is present, breakpoint applies to all.
- if (procTargets.length == 0) {
- results.add("0"); //$NON-NLS-1$
- return results;
- }
-
- // Extract the thread IDs (if there is none, we are covered)
+ // Extract the thread IDs
for (IContainerDMContext procDmc : procTargets) {
+ // Look for a target/process that belongs to our session
if (procDmc.equals(bpTargetDmc) || DMContexts.isAncestorOf(procDmc, bpTargetDmc)) {
IExecutionDMContext[] threadFilters = filterExtension.getThreadFilters(procDmc);
if (threadFilters == null) {
@@ -1913,6 +1910,12 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
results.add("0"); //$NON-NLS-1$
return results;
}
+
+ // If there are no threads to filter on, it means the bp applies to the entire process.
+ if (threads.isEmpty()) {
+ results.add("0"); //$NON-NLS-1$
+ return results;
+ }
for (IExecutionDMContext[] targetThreads : threads) {
if (targetThreads != null) {

Back to the top