Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 336890 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_2.java (-1 / +23 lines)
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

Return to bug 336890