From be2a572842509aaaa18963b176007cbc7722ed67 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Mon, 6 Oct 2008 18:39:30 +0000 Subject: [PATCH] [241317] Because GDB/MI is not ready to support multi-process for every context we have, I have reverted back to changes. I have moved ISymbolDMContext, IBreakpointsTargetDMContext, ISourceLookupDMContext, ISignalsDMContext, IDisassemblyDMContext back to GDBControlDMContext. Maybe later, depending on GDB's final solution, we can move things back. So, GDBControlDMContext is no longer an IMemoryDMContext or an IContainerDMContext. Those interface are implemented by GDBContainerDMC. --- .../launching/FinalLaunchSequence.java | 8 ++------ .../launching/ServicesLaunchSequence.java | 5 +---- .../provisional/service/GDBProcesses.java | 8 +------- .../provisional/service/GDBProcesses_7_0.java | 10 ++-------- .../service/command/GDBControl.java | 9 +++------ .../service/command/GDBControlDMContext.java | 18 +++++++++++++++--- .../service/command/GDBControl_7_0.java | 9 +++------ .../dd/tests/gdb/MIBreakpointsTest.java | 7 +------ .../dd/tests/gdb/MIDisassemblyTest.java | 7 +------ .../dd/tests/gdb/framework/SyncUtil.java | 2 +- 10 files changed, 30 insertions(+), 53 deletions(-) diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/FinalLaunchSequence.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/FinalLaunchSequence.java index 99edc8baeec..e21ef32c09b 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/FinalLaunchSequence.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/FinalLaunchSequence.java @@ -34,7 +34,6 @@ import org.eclipse.dd.dsf.concurrent.RequestMonitor; import org.eclipse.dd.dsf.concurrent.Sequence; import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; -import org.eclipse.dd.dsf.debug.service.IProcesses.IProcessDMContext; import org.eclipse.dd.dsf.debug.service.ISourceLookup.ISourceLookupDMContext; import org.eclipse.dd.dsf.service.DsfServicesTracker; import org.eclipse.dd.gdb.internal.GdbPlugin; @@ -45,7 +44,6 @@ import org.eclipse.dd.gdb.internal.provisional.service.command.IGDBControl; import org.eclipse.dd.mi.service.CSourceLookup; import org.eclipse.dd.mi.service.IMIProcesses; import org.eclipse.dd.mi.service.MIBreakpointsManager; -import org.eclipse.dd.mi.service.MIProcesses; import org.eclipse.dd.mi.service.command.commands.CLISource; import org.eclipse.dd.mi.service.command.commands.MIEnvironmentCD; import org.eclipse.dd.mi.service.command.commands.MIFileExecAndSymbols; @@ -353,8 +351,7 @@ public class FinalLaunchSequence extends Sequence { public void execute(RequestMonitor requestMonitor) { CSourceLookup sourceLookup = fTracker.getService(CSourceLookup.class); CSourceLookupDirector locator = (CSourceLookupDirector)fLaunch.getSourceLocator(); - IProcessDMContext procDmc = fProcService.createProcessContext(fCommandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID); - ISourceLookupDMContext sourceLookupDmc = (ISourceLookupDMContext) fProcService.createContainerContext(procDmc, MIProcesses.UNIQUE_GROUP_ID); + ISourceLookupDMContext sourceLookupDmc = (ISourceLookupDMContext)fCommandControl.getContext(); sourceLookup.setSourceLookupPath(sourceLookupDmc, locator.getSourceContainers(), requestMonitor); }}, @@ -481,8 +478,7 @@ public class FinalLaunchSequence extends Sequence { new Step() { @Override public void execute(final RequestMonitor requestMonitor) { MIBreakpointsManager bpmService = fTracker.getService(MIBreakpointsManager.class); - IProcessDMContext procDmc = fProcService.createProcessContext(fCommandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID); - IBreakpointsTargetDMContext breakpointDmc = (IBreakpointsTargetDMContext) fProcService.createContainerContext(procDmc, MIProcesses.UNIQUE_GROUP_ID); + IBreakpointsTargetDMContext breakpointDmc = (IBreakpointsTargetDMContext)fCommandControl.getContext(); bpmService.startTrackingBreakpoints(breakpointDmc, requestMonitor); }}, diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ServicesLaunchSequence.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ServicesLaunchSequence.java index cabd90410a7..f387fb93f44 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ServicesLaunchSequence.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ServicesLaunchSequence.java @@ -23,14 +23,12 @@ import org.eclipse.dd.dsf.debug.service.IRegisters; import org.eclipse.dd.dsf.debug.service.IRunControl; import org.eclipse.dd.dsf.debug.service.ISourceLookup; import org.eclipse.dd.dsf.debug.service.IStack; -import org.eclipse.dd.dsf.debug.service.IProcesses.IProcessDMContext; import org.eclipse.dd.dsf.debug.service.ISourceLookup.ISourceLookupDMContext; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService; import org.eclipse.dd.dsf.service.DsfSession; import org.eclipse.dd.mi.service.CSourceLookup; import org.eclipse.dd.mi.service.IMIProcesses; import org.eclipse.dd.mi.service.MIBreakpointsManager; -import org.eclipse.dd.mi.service.MIProcesses; public class ServicesLaunchSequence extends Sequence { @@ -78,8 +76,7 @@ public class ServicesLaunchSequence extends Sequence { }}, new Step() { @Override public void execute(RequestMonitor requestMonitor) { - IProcessDMContext procDmc = fProcService.createProcessContext(fCommandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID); - ISourceLookupDMContext sourceLookupDmc = (ISourceLookupDMContext)fProcService.createContainerContext(procDmc, MIProcesses.UNIQUE_GROUP_ID); + ISourceLookupDMContext sourceLookupDmc = (ISourceLookupDMContext)fCommandControl.getContext(); fSourceLookup.setSourceLookupDirector(sourceLookupDmc, (CSourceLookupDirector)fLaunch.getSourceLocator()); requestMonitor.done(); }}, diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses.java index 79dc86b2c24..cad0a6df5fa 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses.java @@ -25,13 +25,8 @@ import org.eclipse.dd.dsf.concurrent.RequestMonitor; import org.eclipse.dd.dsf.datamodel.DMContexts; import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.debug.service.IProcesses; -import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; -import org.eclipse.dd.dsf.debug.service.IDisassembly.IDisassemblyDMContext; import org.eclipse.dd.dsf.debug.service.IMemory.IMemoryDMContext; -import org.eclipse.dd.dsf.debug.service.IModules.ISymbolDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerDMContext; -import org.eclipse.dd.dsf.debug.service.ISignals.ISignalsDMContext; -import org.eclipse.dd.dsf.debug.service.ISourceLookup.ISourceLookupDMContext; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; import org.eclipse.dd.dsf.service.DsfSession; @@ -50,8 +45,7 @@ import org.osgi.framework.BundleContext; public class GDBProcesses extends MIProcesses { private class GDBContainerDMC extends MIContainerDMC - implements ISymbolDMContext, IMemoryDMContext, IBreakpointsTargetDMContext, ISourceLookupDMContext, - ISignalsDMContext, IDisassemblyDMContext + implements IMemoryDMContext { public GDBContainerDMC(String sessionId, IProcessDMContext processDmc, String groupId) { super(sessionId, processDmc, groupId); diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses_7_0.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses_7_0.java index 1492c1fa544..0bc5abe4120 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses_7_0.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/GDBProcesses_7_0.java @@ -26,10 +26,7 @@ import org.eclipse.dd.dsf.datamodel.DMContexts; import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.debug.service.ICachingService; import org.eclipse.dd.dsf.debug.service.IProcesses; -import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; -import org.eclipse.dd.dsf.debug.service.IDisassembly.IDisassemblyDMContext; import org.eclipse.dd.dsf.debug.service.IMemory.IMemoryDMContext; -import org.eclipse.dd.dsf.debug.service.IModules.ISymbolDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerResumedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerSuspendedDMEvent; @@ -38,8 +35,6 @@ import org.eclipse.dd.dsf.debug.service.IRunControl.IExitedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.IResumedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.IStartedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; -import org.eclipse.dd.dsf.debug.service.ISignals.ISignalsDMContext; -import org.eclipse.dd.dsf.debug.service.ISourceLookup.ISourceLookupDMContext; import org.eclipse.dd.dsf.debug.service.command.CommandCache; import org.eclipse.dd.dsf.debug.service.command.IEventListener; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; @@ -201,9 +196,8 @@ public class GDBProcesses_7_0 extends AbstractDsfService public int hashCode() { return super.baseHashCode() ^ (fId == null ? 0 : fId.hashCode()); } } - private class GDBContainerDMC extends MIContainerDMC - implements ISymbolDMContext, IMemoryDMContext, IBreakpointsTargetDMContext, ISourceLookupDMContext, - ISignalsDMContext, IDisassemblyDMContext + private class GDBContainerDMC extends MIContainerDMC + implements IMemoryDMContext { public GDBContainerDMC(String sessionId, IProcessDMContext processDmc, String groupId) { super(sessionId, processDmc, groupId); diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl.java index e0a1609e83a..9a05c09c80d 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl.java @@ -39,7 +39,6 @@ import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants; import org.eclipse.dd.dsf.concurrent.RequestMonitor; import org.eclipse.dd.dsf.concurrent.Sequence; import org.eclipse.dd.dsf.datamodel.AbstractDMEvent; -import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; import org.eclipse.dd.dsf.debug.service.IProcesses.IProcessDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.dd.dsf.debug.service.command.ICommandControl; @@ -104,7 +103,7 @@ public class GDBControl extends AbstractMIControl implements IGDBControl { } private static int fgInstanceCounter = 0; - private final MIControlDMContext fControlDmc; + private final GDBControlDMContext fControlDmc; private SessionType fSessionType; @@ -136,7 +135,7 @@ public class GDBControl extends AbstractMIControl implements IGDBControl { } catch (CoreException e) { fExecPath = new Path(""); //$NON-NLS-1$ } - fControlDmc = new MIControlDMContext(session.getId(), getId()); + fControlDmc = new GDBControlDMContext(session.getId(), getId()); } @Override @@ -379,11 +378,9 @@ public class GDBControl extends AbstractMIControl implements IGDBControl { return; } - final IBreakpointsTargetDMContext breakpointDmc = (IBreakpointsTargetDMContext)containerDmc; - // Insert a breakpoint at the requested stop symbol. queueCommand( - new MIBreakInsert(breakpointDmc, true, false, null, 0, stopSymbol, 0), + new MIBreakInsert(fControlDmc, true, false, null, 0, stopSymbol, 0), new DataRequestMonitor(getExecutor(), requestMonitor) { @Override protected void handleSuccess() { diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControlDMContext.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControlDMContext.java index 93c2a2399e3..9123824cdee 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControlDMContext.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControlDMContext.java @@ -10,11 +10,23 @@ *******************************************************************************/ package org.eclipse.dd.gdb.internal.provisional.service.command; +import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; +import org.eclipse.dd.dsf.debug.service.IDisassembly.IDisassemblyDMContext; +import org.eclipse.dd.dsf.debug.service.IModules.ISymbolDMContext; +import org.eclipse.dd.dsf.debug.service.ISignals.ISignalsDMContext; +import org.eclipse.dd.dsf.debug.service.ISourceLookup.ISourceLookupDMContext; +import org.eclipse.dd.mi.service.command.MIControlDMContext; /** - * To be removed + * */ -public class GDBControlDMContext +public class GDBControlDMContext extends MIControlDMContext + implements ISymbolDMContext, IBreakpointsTargetDMContext, ISourceLookupDMContext, + ISignalsDMContext, IDisassemblyDMContext { - public GDBControlDMContext(String sessionId, String commandControlId) {} + + public GDBControlDMContext(String sessionId, String commandControlId) { + super(sessionId, commandControlId); + } + } diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl_7_0.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl_7_0.java index f7ec5dee98f..822eb54546c 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl_7_0.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl_7_0.java @@ -40,7 +40,6 @@ import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants; import org.eclipse.dd.dsf.concurrent.RequestMonitor; import org.eclipse.dd.dsf.concurrent.Sequence; import org.eclipse.dd.dsf.datamodel.AbstractDMEvent; -import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; import org.eclipse.dd.dsf.debug.service.IProcesses.IProcessDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.dd.dsf.debug.service.command.ICommandControl; @@ -104,7 +103,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl { } private static int fgInstanceCounter = 0; - private final MIControlDMContext fControlDmc; + private final GDBControlDMContext fControlDmc; private SessionType fSessionType; @@ -136,7 +135,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl { } catch (CoreException e) { fExecPath = new Path(""); //$NON-NLS-1$ } - fControlDmc = new MIControlDMContext(session.getId(), getId()); + fControlDmc = new GDBControlDMContext(session.getId(), getId()); } @Override @@ -373,11 +372,9 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl { return; } - final IBreakpointsTargetDMContext breakpointDmc = (IBreakpointsTargetDMContext)containerDmc; - // Insert a breakpoint at the requested stop symbol. queueCommand( - new MIBreakInsert(breakpointDmc, true, false, null, 0, stopSymbol, 0), + new MIBreakInsert(fControlDmc, true, false, null, 0, stopSymbol, 0), new DataRequestMonitor(getExecutor(), requestMonitor) { @Override protected void handleSuccess() { diff --git a/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIBreakpointsTest.java b/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIBreakpointsTest.java index d4a6f00f7d8..f4d2c3df2a2 100644 --- a/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIBreakpointsTest.java +++ b/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIBreakpointsTest.java @@ -34,16 +34,13 @@ import org.eclipse.dd.dsf.debug.service.IBreakpoints.IBreakpointsUpdatedEvent; import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMContext; import org.eclipse.dd.dsf.debug.service.IFormattedValues.FormattedValueDMContext; import org.eclipse.dd.dsf.debug.service.IFormattedValues.FormattedValueDMData; -import org.eclipse.dd.dsf.debug.service.IProcesses.IProcessDMContext; import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMContext; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService; import org.eclipse.dd.dsf.service.DsfServiceEventHandler; import org.eclipse.dd.dsf.service.DsfServicesTracker; import org.eclipse.dd.dsf.service.DsfSession; -import org.eclipse.dd.mi.service.IMIProcesses; import org.eclipse.dd.mi.service.MIBreakpointDMData; import org.eclipse.dd.mi.service.MIBreakpoints; -import org.eclipse.dd.mi.service.MIProcesses; import org.eclipse.dd.mi.service.MIRunControl; import org.eclipse.dd.mi.service.MIBreakpoints.MIBreakpointDMContext; import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent; @@ -181,9 +178,7 @@ public class MIBreakpointsTest extends BaseTestCase { assert(fServicesTracker != null); ICommandControlService commandControl = fServicesTracker.getService(ICommandControlService.class); - IMIProcesses procService = fServicesTracker.getService(IMIProcesses.class); - IProcessDMContext procDmc = procService.createProcessContext(commandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID); - fBreakpointsDmc = (IBreakpointsTargetDMContext)procService.createContainerContext(procDmc, MIProcesses.UNIQUE_GROUP_ID); + fBreakpointsDmc = (IBreakpointsTargetDMContext)commandControl.getContext(); assert(fBreakpointsDmc != null); fRunControl = fServicesTracker.getService(MIRunControl.class); diff --git a/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIDisassemblyTest.java b/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIDisassemblyTest.java index c0cda90b704..4056e9d20ba 100644 --- a/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIDisassemblyTest.java +++ b/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/MIDisassemblyTest.java @@ -28,14 +28,11 @@ import org.eclipse.dd.dsf.debug.service.IDisassembly.IDisassemblyDMContext; import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMContext; import org.eclipse.dd.dsf.debug.service.IFormattedValues.FormattedValueDMContext; import org.eclipse.dd.dsf.debug.service.IFormattedValues.FormattedValueDMData; -import org.eclipse.dd.dsf.debug.service.IProcesses.IProcessDMContext; import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMContext; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService; import org.eclipse.dd.dsf.service.DsfServicesTracker; import org.eclipse.dd.dsf.service.DsfSession; -import org.eclipse.dd.mi.service.IMIProcesses; import org.eclipse.dd.mi.service.MIDisassembly; -import org.eclipse.dd.mi.service.MIProcesses; import org.eclipse.dd.mi.service.command.events.MIStoppedEvent; import org.eclipse.dd.tests.gdb.framework.AsyncCompletionWaitor; import org.eclipse.dd.tests.gdb.framework.BackgroundRunner; @@ -99,9 +96,7 @@ public class MIDisassemblyTest extends BaseTestCase { assert(fServicesTracker != null); ICommandControlService commandControl = fServicesTracker.getService(ICommandControlService.class); - IMIProcesses procService = fServicesTracker.getService(IMIProcesses.class); - IProcessDMContext procDmc = procService.createProcessContext(commandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID); - fDisassemblyDmc = (IDisassemblyDMContext)procService.createContainerContext(procDmc, MIProcesses.UNIQUE_GROUP_ID); + fDisassemblyDmc = (IDisassemblyDMContext)commandControl.getContext(); assert(fDisassemblyDmc != null); fDisassembly = fServicesTracker.getService(MIDisassembly.class); diff --git a/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/framework/SyncUtil.java b/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/framework/SyncUtil.java index 6dc60bc05b9..4fd00b901a9 100644 --- a/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/framework/SyncUtil.java +++ b/plugins/org.eclipse.dd.tests.gdb/src/org/eclipse/dd/tests/gdb/framework/SyncUtil.java @@ -79,7 +79,7 @@ public class SyncUtil { IProcessDMContext procDmc = procService.createProcessContext(fCommandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID); fGdbContainerDmc = procService.createContainerContext(procDmc, MIProcesses.UNIQUE_GROUP_ID); - fBreakpointsDmc = (IBreakpointsTargetDMContext)fGdbContainerDmc; + fBreakpointsDmc = (IBreakpointsTargetDMContext)fCommandControl.getContext(); fRunControl = tracker.getService(MIRunControl.class); fStack = tracker.getService(MIStack.class);