From 906fdd4ad28c486488378bc2f0d9dfba5557583b Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Tue, 8 Feb 2011 15:25:03 +0000 Subject: [PATCH] Bug 335324: Make the container (process) the breakpointTarget context --- .../org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java | 3 ++- .../org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_2.java | 4 +++- .../eclipse/cdt/dsf/mi/service/IMIContainerDMContext.java | 6 ++---- .../src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java index ed3b4397438..18e6f314bf5 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java @@ -31,6 +31,7 @@ import org.eclipse.cdt.dsf.datamodel.AbstractDMContext; import org.eclipse.cdt.dsf.datamodel.AbstractDMEvent; import org.eclipse.cdt.dsf.datamodel.DMContexts; import org.eclipse.cdt.dsf.datamodel.IDMContext; +import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; import org.eclipse.cdt.dsf.debug.service.ICachingService; import org.eclipse.cdt.dsf.debug.service.IMemory.IMemoryDMContext; import org.eclipse.cdt.dsf.debug.service.IProcesses; @@ -167,7 +168,7 @@ public class GDBProcesses_7_0 extends AbstractDsfService */ @Immutable private static class MIContainerDMC extends AbstractDMContext - implements IMIContainerDMContext + implements IMIContainerDMContext, IBreakpointsTargetDMContext { /** * String ID that is used to identify the thread group in the GDB/MI protocol. diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_2.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_2.java index d0ff5f39d5e..2fa7b87c8ef 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_2.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_2.java @@ -14,6 +14,7 @@ import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.RequestMonitor; import org.eclipse.cdt.dsf.datamodel.DMContexts; import org.eclipse.cdt.dsf.datamodel.IDMContext; +import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; import org.eclipse.cdt.dsf.gdb.service.command.IGDBControl; @@ -103,7 +104,8 @@ public class GDBProcesses_7_2 extends GDBProcesses_7_1 { // Start tracking this process' breakpoints. MIBreakpointsManager bpmService = getServicesTracker().getService(MIBreakpointsManager.class); - bpmService.startTrackingBreakpoints(containerDmc, rm); + IBreakpointsTargetDMContext bpTargetDmc = DMContexts.getAncestorOfType(containerDmc, IBreakpointsTargetDMContext.class); + bpmService.startTrackingBreakpoints(bpTargetDmc, rm); } }); } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/IMIContainerDMContext.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/IMIContainerDMContext.java index 6dcc3e36049..3589d975ca2 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/IMIContainerDMContext.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/IMIContainerDMContext.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Ericsson and others. + * Copyright (c) 2008, 2009 Ericsson and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,11 +7,9 @@ * * Contributors: * Ericsson - initial API and implementation - * Onur Akdemir (TUBITAK BILGEM-ITI) - Multi-process debugging (Bug 335324) *******************************************************************************/ package org.eclipse.cdt.dsf.mi.service; -import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; /** @@ -20,7 +18,7 @@ import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; * identifier. These thread groups are the basis for this context. * @since 1.1 */ -public interface IMIContainerDMContext extends IContainerDMContext, IBreakpointsTargetDMContext +public interface IMIContainerDMContext extends IContainerDMContext { /** * Returns the GDB/MI thread group identifier of this context. diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java index c2a253100e3..fcf60e784cc 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java @@ -19,6 +19,7 @@ import org.eclipse.cdt.dsf.datamodel.AbstractDMContext; import org.eclipse.cdt.dsf.datamodel.AbstractDMEvent; import org.eclipse.cdt.dsf.datamodel.DMContexts; import org.eclipse.cdt.dsf.datamodel.IDMContext; +import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; import org.eclipse.cdt.dsf.debug.service.ICachingService; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerResumedDMEvent; @@ -135,7 +136,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa */ @Immutable protected static class MIContainerDMC extends AbstractDMContext - implements IMIContainerDMContext + implements IMIContainerDMContext, IBreakpointsTargetDMContext { /** * String ID that is used to identify the thread group in the GDB/MI protocol.