|
Lines 20-25
Link Here
|
| 20 |
import org.eclipse.cdt.dsf.datamodel.DMContexts; |
20 |
import org.eclipse.cdt.dsf.datamodel.DMContexts; |
| 21 |
import org.eclipse.cdt.dsf.datamodel.IDMContext; |
21 |
import org.eclipse.cdt.dsf.datamodel.IDMContext; |
| 22 |
import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; |
22 |
import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext; |
|
|
23 |
import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; |
| 24 |
import org.eclipse.cdt.dsf.debug.service.IRunControl.IExitedDMEvent; |
| 23 |
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; |
25 |
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; |
| 24 |
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants; |
26 |
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants; |
| 25 |
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; |
27 |
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; |
|
Lines 28-39
Link Here
|
| 28 |
import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext; |
30 |
import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext; |
| 29 |
import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext; |
31 |
import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext; |
| 30 |
import org.eclipse.cdt.dsf.mi.service.IMIRunControl; |
32 |
import org.eclipse.cdt.dsf.mi.service.IMIRunControl; |
|
|
33 |
import org.eclipse.cdt.dsf.mi.service.IMIRunControl.MIRunMode; |
| 31 |
import org.eclipse.cdt.dsf.mi.service.MIBreakpointsManager; |
34 |
import org.eclipse.cdt.dsf.mi.service.MIBreakpointsManager; |
| 32 |
import org.eclipse.cdt.dsf.mi.service.MIProcesses; |
35 |
import org.eclipse.cdt.dsf.mi.service.MIProcesses; |
| 33 |
import org.eclipse.cdt.dsf.mi.service.IMIRunControl.MIRunMode; |
|
|
| 34 |
import org.eclipse.cdt.dsf.mi.service.command.CommandFactory; |
36 |
import org.eclipse.cdt.dsf.mi.service.command.CommandFactory; |
| 35 |
import org.eclipse.cdt.dsf.mi.service.command.output.MIAddInferiorInfo; |
37 |
import org.eclipse.cdt.dsf.mi.service.command.output.MIAddInferiorInfo; |
| 36 |
import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo; |
38 |
import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo; |
|
|
39 |
import org.eclipse.cdt.dsf.service.DsfServiceEventHandler; |
| 37 |
import org.eclipse.cdt.dsf.service.DsfSession; |
40 |
import org.eclipse.cdt.dsf.service.DsfSession; |
| 38 |
import org.eclipse.core.runtime.CoreException; |
41 |
import org.eclipse.core.runtime.CoreException; |
| 39 |
import org.eclipse.core.runtime.IStatus; |
42 |
import org.eclipse.core.runtime.IStatus; |
|
Lines 314-318
Link Here
|
| 314 |
Map<String, Object> attributes, DataRequestMonitor<IDMContext> rm) { |
317 |
Map<String, Object> attributes, DataRequestMonitor<IDMContext> rm) { |
| 315 |
return new DebugNewProcessSequence_7_2(executor, isInitial, dmc, file, attributes, rm); |
318 |
return new DebugNewProcessSequence_7_2(executor, isInitial, dmc, file, attributes, rm); |
| 316 |
} |
319 |
} |
|
|
320 |
|
| 321 |
/** |
| 322 |
* @since 4.0 |
| 323 |
*/ |
| 324 |
@DsfServiceEventHandler |
| 325 |
@Override |
| 326 |
public void eventDispatched(IExitedDMEvent e) { |
| 327 |
IDMContext dmc = e.getDMContext(); |
| 328 |
if (dmc instanceof IContainerDMContext) { |
| 329 |
// A process has died, we should stop tracking its breakpoints |
| 330 |
if (fBackend.getSessionType() != SessionType.CORE) { |
| 331 |
IBreakpointsTargetDMContext bpTargetDmc = DMContexts.getAncestorOfType(dmc, IBreakpointsTargetDMContext.class); |
| 332 |
MIBreakpointsManager bpmService = getServicesTracker().getService(MIBreakpointsManager.class); |
| 333 |
bpmService.stopTrackingBreakpoints(bpTargetDmc, new RequestMonitor(ImmediateExecutor.getInstance(), null)); |
| 334 |
} |
| 335 |
} |
| 336 |
|
| 337 |
super.eventDispatched(e); |
| 338 |
} |
| 317 |
} |
339 |
} |
| 318 |
|
340 |
|