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 243216 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl.java (-21 / +3 lines)
Lines 38-44 Link Here
38
import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants;
38
import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants;
39
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
39
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
40
import org.eclipse.dd.dsf.concurrent.Sequence;
40
import org.eclipse.dd.dsf.concurrent.Sequence;
41
import org.eclipse.dd.dsf.datamodel.AbstractDMEvent;
42
import org.eclipse.dd.dsf.debug.service.command.ICommandControl;
41
import org.eclipse.dd.dsf.debug.service.command.ICommandControl;
43
import org.eclipse.dd.dsf.service.DsfServiceEventHandler;
42
import org.eclipse.dd.dsf.service.DsfServiceEventHandler;
44
import org.eclipse.dd.dsf.service.DsfSession;
43
import org.eclipse.dd.dsf.service.DsfSession;
Lines 73-95 Link Here
73
 */
72
 */
74
public class GDBControl extends AbstractMIControl {
73
public class GDBControl extends AbstractMIControl {
75
74
76
    /**
77
     * Event indicating that the back end process process has started.
78
     */
79
    public static class GDBStartedEvent extends AbstractDMEvent<GDBControlDMContext> {
80
        public GDBStartedEvent(GDBControlDMContext context) {
81
            super(context);
82
        }
83
    }
84
    
85
    /**
86
     * Event indicating that the back end process has terminated.
87
     */
88
    public static class GDBExitedEvent extends AbstractDMEvent<GDBControlDMContext> {
89
        public GDBExitedEvent(GDBControlDMContext context) {
90
            super(context);
91
        }
92
    }
93
75
94
    private static int fgInstanceCounter = 0;
76
    private static int fgInstanceCounter = 0;
95
    private final GDBControlDMContext fControlDmc;
77
    private final GDBControlDMContext fControlDmc;
Lines 436-442 Link Here
436
    }
418
    }
437
        
419
        
438
    @DsfServiceEventHandler 
420
    @DsfServiceEventHandler 
439
    public void eventDispatched(GDBExitedEvent e) {
421
    public void eventDispatched(BackendExitedEvent e) {
440
        // Handle our "GDB Exited" event and stop processing commands.
422
        // Handle our "GDB Exited" event and stop processing commands.
441
        stopCommandProcessing();
423
        stopCommandProcessing();
442
    }
424
    }
Lines 463-469 Link Here
463
                        Thread.interrupted();
445
                        Thread.interrupted();
464
                    } finally {
446
                    } finally {
465
                        fExited = true;
447
                        fExited = true;
466
                        getSession().dispatchEvent(new GDBExitedEvent(fControlDmc) {}, getProperties());
448
                        getSession().dispatchEvent(new BackendExitedEvent(fControlDmc) {}, getProperties());
467
                    }
449
                    }
468
                }
450
                }
469
            }
451
            }
Lines 735-741 Link Here
735
        public void initialize(final RequestMonitor requestMonitor) {
717
        public void initialize(final RequestMonitor requestMonitor) {
736
            getSession().addServiceEventListener(GDBControl.this, null);
718
            getSession().addServiceEventListener(GDBControl.this, null);
737
            register(new String[]{ ICommandControl.class.getName(), AbstractMIControl.class.getName() }, new Hashtable<String,String>());
719
            register(new String[]{ ICommandControl.class.getName(), AbstractMIControl.class.getName() }, new Hashtable<String,String>());
738
            getSession().dispatchEvent(new GDBStartedEvent(getGDBDMContext()), getProperties());
720
            getSession().dispatchEvent(new BackendStartedEvent(getGDBDMContext()), getProperties());
739
            requestMonitor.done();
721
            requestMonitor.done();
740
        }
722
        }
741
723
(-)src/org/eclipse/dd/gdb/internal/provisional/launching/GdbLaunch.java (-1 / +1 lines)
Lines 184-190 Link Here
184
    
184
    
185
    ///////////////////////////////////////////////////////////////////////////
185
    ///////////////////////////////////////////////////////////////////////////
186
    // IServiceEventListener
186
    // IServiceEventListener
187
    @DsfServiceEventHandler public void eventDispatched(GDBControl.GDBExitedEvent event) {
187
    @DsfServiceEventHandler public void eventDispatched(GDBControl.BackendExitedEvent event) {
188
        shutdownSession(new RequestMonitor(ImmediateExecutor.getInstance(), null));
188
        shutdownSession(new RequestMonitor(ImmediateExecutor.getInstance(), null));
189
    }
189
    }
190
190
(-)src/org/eclipse/dd/mi/service/MIRunControlNS.java (-2 / +2 lines)
Lines 35-40 Link Here
35
import org.eclipse.dd.dsf.service.DsfSession;
35
import org.eclipse.dd.dsf.service.DsfSession;
36
import org.eclipse.dd.mi.internal.MIPlugin;
36
import org.eclipse.dd.mi.internal.MIPlugin;
37
import org.eclipse.dd.mi.service.command.AbstractMIControl;
37
import org.eclipse.dd.mi.service.command.AbstractMIControl;
38
import org.eclipse.dd.mi.service.command.AbstractMIControl.BackendExitedEvent;
38
import org.eclipse.dd.mi.service.command.commands.MIExecContinue;
39
import org.eclipse.dd.mi.service.command.commands.MIExecContinue;
39
import org.eclipse.dd.mi.service.command.commands.MIExecFinish;
40
import org.eclipse.dd.mi.service.command.commands.MIExecFinish;
40
import org.eclipse.dd.mi.service.command.commands.MIExecInterrupt;
41
import org.eclipse.dd.mi.service.command.commands.MIExecInterrupt;
Lines 48-54 Link Here
48
import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent;
49
import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent;
49
import org.eclipse.dd.mi.service.command.events.MIErrorEvent;
50
import org.eclipse.dd.mi.service.command.events.MIErrorEvent;
50
import org.eclipse.dd.mi.service.command.events.MIEvent;
51
import org.eclipse.dd.mi.service.command.events.MIEvent;
51
import org.eclipse.dd.mi.service.command.events.MIGDBExitEvent;
52
import org.eclipse.dd.mi.service.command.events.MIRunningEvent;
52
import org.eclipse.dd.mi.service.command.events.MIRunningEvent;
53
import org.eclipse.dd.mi.service.command.events.MISharedLibEvent;
53
import org.eclipse.dd.mi.service.command.events.MISharedLibEvent;
54
import org.eclipse.dd.mi.service.command.events.MISignalEvent;
54
import org.eclipse.dd.mi.service.command.events.MISignalEvent;
Lines 850-856 Link Here
850
	}
850
	}
851
851
852
	@DsfServiceEventHandler
852
	@DsfServiceEventHandler
853
	public void eventDispatched(MIGDBExitEvent e) {
853
	public void eventDispatched(BackendExitedEvent e) {
854
		fTerminated = true;
854
		fTerminated = true;
855
	}
855
	}
856
856
(-)src/org/eclipse/dd/mi/service/MIBreakpoints.java (-2 / +2 lines)
Lines 31-36 Link Here
31
import org.eclipse.dd.dsf.service.DsfServiceEventHandler;
31
import org.eclipse.dd.dsf.service.DsfServiceEventHandler;
32
import org.eclipse.dd.dsf.service.DsfSession;
32
import org.eclipse.dd.dsf.service.DsfSession;
33
import org.eclipse.dd.mi.internal.MIPlugin;
33
import org.eclipse.dd.mi.internal.MIPlugin;
34
import org.eclipse.dd.mi.service.command.AbstractMIControl.BackendExitedEvent;
34
import org.eclipse.dd.mi.service.command.commands.MIBreakAfter;
35
import org.eclipse.dd.mi.service.command.commands.MIBreakAfter;
35
import org.eclipse.dd.mi.service.command.commands.MIBreakCondition;
36
import org.eclipse.dd.mi.service.command.commands.MIBreakCondition;
36
import org.eclipse.dd.mi.service.command.commands.MIBreakDelete;
37
import org.eclipse.dd.mi.service.command.commands.MIBreakDelete;
Lines 39-45 Link Here
39
import org.eclipse.dd.mi.service.command.commands.MIBreakInsert;
40
import org.eclipse.dd.mi.service.command.commands.MIBreakInsert;
40
import org.eclipse.dd.mi.service.command.commands.MIBreakList;
41
import org.eclipse.dd.mi.service.command.commands.MIBreakList;
41
import org.eclipse.dd.mi.service.command.commands.MIBreakWatch;
42
import org.eclipse.dd.mi.service.command.commands.MIBreakWatch;
42
import org.eclipse.dd.mi.service.command.events.MIGDBExitEvent;
43
import org.eclipse.dd.mi.service.command.events.MIWatchpointScopeEvent;
43
import org.eclipse.dd.mi.service.command.events.MIWatchpointScopeEvent;
44
import org.eclipse.dd.mi.service.command.output.MIBreakInsertInfo;
44
import org.eclipse.dd.mi.service.command.output.MIBreakInsertInfo;
45
import org.eclipse.dd.mi.service.command.output.MIBreakListInfo;
45
import org.eclipse.dd.mi.service.command.output.MIBreakListInfo;
Lines 271-277 Link Here
271
	}
271
	}
272
272
273
    @DsfServiceEventHandler
273
    @DsfServiceEventHandler
274
    public void eventDispatched(MIGDBExitEvent e) {
274
    public void eventDispatched(BackendExitedEvent e) {
275
    }
275
    }
276
276
277
	///////////////////////////////////////////////////////////////////////////
277
	///////////////////////////////////////////////////////////////////////////
(-)src/org/eclipse/dd/mi/service/MIRunControl.java (-2 / +2 lines)
Lines 29-34 Link Here
29
import org.eclipse.dd.dsf.service.DsfSession;
29
import org.eclipse.dd.dsf.service.DsfSession;
30
import org.eclipse.dd.mi.internal.MIPlugin;
30
import org.eclipse.dd.mi.internal.MIPlugin;
31
import org.eclipse.dd.mi.service.command.AbstractMIControl;
31
import org.eclipse.dd.mi.service.command.AbstractMIControl;
32
import org.eclipse.dd.mi.service.command.AbstractMIControl.BackendExitedEvent;
32
import org.eclipse.dd.mi.service.command.commands.MIExecContinue;
33
import org.eclipse.dd.mi.service.command.commands.MIExecContinue;
33
import org.eclipse.dd.mi.service.command.commands.MIExecFinish;
34
import org.eclipse.dd.mi.service.command.commands.MIExecFinish;
34
import org.eclipse.dd.mi.service.command.commands.MIExecInterrupt;
35
import org.eclipse.dd.mi.service.command.commands.MIExecInterrupt;
Lines 42-48 Link Here
42
import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent;
43
import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent;
43
import org.eclipse.dd.mi.service.command.events.MIErrorEvent;
44
import org.eclipse.dd.mi.service.command.events.MIErrorEvent;
44
import org.eclipse.dd.mi.service.command.events.MIEvent;
45
import org.eclipse.dd.mi.service.command.events.MIEvent;
45
import org.eclipse.dd.mi.service.command.events.MIGDBExitEvent;
46
import org.eclipse.dd.mi.service.command.events.MIRunningEvent;
46
import org.eclipse.dd.mi.service.command.events.MIRunningEvent;
47
import org.eclipse.dd.mi.service.command.events.MISharedLibEvent;
47
import org.eclipse.dd.mi.service.command.events.MISharedLibEvent;
48
import org.eclipse.dd.mi.service.command.events.MISignalEvent;
48
import org.eclipse.dd.mi.service.command.events.MISignalEvent;
Lines 405-411 Link Here
405
    
405
    
406
    
406
    
407
    @DsfServiceEventHandler
407
    @DsfServiceEventHandler
408
    public void eventDispatched(MIGDBExitEvent e) {
408
    public void eventDispatched(BackendExitedEvent e) {
409
        fTerminated = true;
409
        fTerminated = true;
410
	}
410
	}
411
411
(-)src/org/eclipse/dd/mi/service/MIBreakpointsManager.java (-2 / +2 lines)
Lines 72-79 Link Here
72
import org.eclipse.dd.mi.service.MIBreakpoints.BreakpointUpdatedEvent;
72
import org.eclipse.dd.mi.service.MIBreakpoints.BreakpointUpdatedEvent;
73
import org.eclipse.dd.mi.service.MIBreakpoints.MIBreakpointDMContext;
73
import org.eclipse.dd.mi.service.MIBreakpoints.MIBreakpointDMContext;
74
import org.eclipse.dd.mi.service.breakpoint.actions.BreakpointActionAdapter;
74
import org.eclipse.dd.mi.service.breakpoint.actions.BreakpointActionAdapter;
75
import org.eclipse.dd.mi.service.command.AbstractMIControl.BackendExitedEvent;
75
import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent;
76
import org.eclipse.dd.mi.service.command.events.MIBreakpointHitEvent;
76
import org.eclipse.dd.mi.service.command.events.MIGDBExitEvent;
77
import org.eclipse.dd.mi.service.command.events.MIWatchpointScopeEvent;
77
import org.eclipse.dd.mi.service.command.events.MIWatchpointScopeEvent;
78
import org.eclipse.dd.mi.service.command.events.MIWatchpointTriggerEvent;
78
import org.eclipse.dd.mi.service.command.events.MIWatchpointTriggerEvent;
79
import org.eclipse.debug.core.DebugPlugin;
79
import org.eclipse.debug.core.DebugPlugin;
Lines 1228-1234 Link Here
1228
    //-------------------------------------------------------------------------
1228
    //-------------------------------------------------------------------------
1229
1229
1230
    @DsfServiceEventHandler
1230
    @DsfServiceEventHandler
1231
    public void eventDispatched(MIGDBExitEvent e) {
1231
    public void eventDispatched(BackendExitedEvent e) {
1232
        terminated();
1232
        terminated();
1233
    }
1233
    }
1234
1234
(-)src/org/eclipse/dd/mi/service/command/AbstractMIControl.java (+19 lines)
Lines 30-35 Link Here
30
import org.eclipse.core.runtime.Status;
30
import org.eclipse.core.runtime.Status;
31
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
31
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
32
import org.eclipse.dd.dsf.concurrent.DsfRunnable;
32
import org.eclipse.dd.dsf.concurrent.DsfRunnable;
33
import org.eclipse.dd.dsf.datamodel.AbstractDMEvent;
33
import org.eclipse.dd.dsf.datamodel.DMContexts;
34
import org.eclipse.dd.dsf.datamodel.DMContexts;
34
import org.eclipse.dd.dsf.datamodel.IDMContext;
35
import org.eclipse.dd.dsf.datamodel.IDMContext;
35
import org.eclipse.dd.dsf.debug.service.IRunControl;
36
import org.eclipse.dd.dsf.debug.service.IRunControl;
Lines 68-73 Link Here
68
{
69
{
69
    final static String PROP_INSTANCE_ID = MIPlugin.PLUGIN_ID + ".miControlInstanceId";    //$NON-NLS-1$
70
    final static String PROP_INSTANCE_ID = MIPlugin.PLUGIN_ID + ".miControlInstanceId";    //$NON-NLS-1$
70
 
71
 
72
    /**
73
     * Event indicating that the back end process has started.
74
     */
75
    public static class BackendStartedEvent extends AbstractDMEvent<MIControlDMContext> {
76
        public BackendStartedEvent(MIControlDMContext context) {
77
            super(context);
78
        }
79
    }
80
    
81
    /**
82
     * Event indicating that the back end process has terminated.
83
     */
84
    public static class BackendExitedEvent extends AbstractDMEvent<MIControlDMContext> {
85
        public BackendExitedEvent(MIControlDMContext context) {
86
            super(context);
87
        }
88
    }
89
71
    /*
90
    /*
72
	 *  Thread control variables for the transmit and receive threads.
91
	 *  Thread control variables for the transmit and receive threads.
73
	 */
92
	 */
(-)src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/LaunchVMProvider.java (-4 / +4 lines)
Lines 20-27 Link Here
20
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
20
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
21
import org.eclipse.dd.dsf.ui.viewmodel.IRootVMNode;
21
import org.eclipse.dd.dsf.ui.viewmodel.IRootVMNode;
22
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
22
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
23
import org.eclipse.dd.gdb.internal.provisional.service.command.GDBControl.GDBExitedEvent;
23
import org.eclipse.dd.mi.service.command.AbstractMIControl.BackendExitedEvent;
24
import org.eclipse.dd.gdb.internal.provisional.service.command.GDBControl.GDBStartedEvent;
24
import org.eclipse.dd.mi.service.command.AbstractMIControl.BackendStartedEvent;
25
import org.eclipse.dd.mi.service.command.MIInferiorProcess.InferiorExitedDMEvent;
25
import org.eclipse.dd.mi.service.command.MIInferiorProcess.InferiorExitedDMEvent;
26
import org.eclipse.dd.mi.service.command.MIInferiorProcess.InferiorStartedDMEvent;
26
import org.eclipse.dd.mi.service.command.MIInferiorProcess.InferiorStartedDMEvent;
27
import org.eclipse.debug.core.DebugPlugin;
27
import org.eclipse.debug.core.DebugPlugin;
Lines 75-82 Link Here
75
        // Never skip the process lifecycle events.
75
        // Never skip the process lifecycle events.
76
        if (eventToSkip instanceof InferiorExitedDMEvent || 
76
        if (eventToSkip instanceof InferiorExitedDMEvent || 
77
            eventToSkip instanceof InferiorStartedDMEvent ||
77
            eventToSkip instanceof InferiorStartedDMEvent ||
78
            eventToSkip instanceof GDBStartedEvent ||
78
            eventToSkip instanceof BackendStartedEvent ||
79
            eventToSkip instanceof GDBExitedEvent) 
79
            eventToSkip instanceof BackendExitedEvent) 
80
        {
80
        {
81
            return false;
81
            return false;
82
        }
82
        }
(-)src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java (-4 / +4 lines)
Lines 125-133 Link Here
125
125
126
	@Override
126
	@Override
127
	public int getDeltaFlags(Object e) {
127
	public int getDeltaFlags(Object e) {
128
		if (e instanceof GDBControl.GDBExitedEvent) {
128
		if (e instanceof GDBControl.BackendExitedEvent) {
129
	        return IModelDelta.CONTENT;
129
	        return IModelDelta.CONTENT;
130
	    } else if (e instanceof GDBControl.GDBStartedEvent) {
130
	    } else if (e instanceof GDBControl.BackendStartedEvent) {
131
	        return IModelDelta.EXPAND;
131
	        return IModelDelta.EXPAND;
132
	    }
132
	    }
133
	    return super.getDeltaFlags(e);
133
	    return super.getDeltaFlags(e);
Lines 135-143 Link Here
135
135
136
	@Override
136
	@Override
137
	public void buildDelta(Object e, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor) {
137
	public void buildDelta(Object e, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor) {
138
		if (e instanceof GDBControl.GDBExitedEvent) {
138
		if (e instanceof GDBControl.BackendExitedEvent) {
139
	        parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
139
	        parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
140
	    } else if (e instanceof GDBControl.GDBStartedEvent) {
140
	    } else if (e instanceof GDBControl.BackendStartedEvent) {
141
	        parentDelta.addNode(createVMContext(((IDMEvent<?>)e).getDMContext()), IModelDelta.EXPAND);
141
	        parentDelta.addNode(createVMContext(((IDMEvent<?>)e).getDMContext()), IModelDelta.EXPAND);
142
	    } else {
142
	    } else {
143
	    	super.buildDelta(e, parentDelta, nodeOffset, requestMonitor);
143
	    	super.buildDelta(e, parentDelta, nodeOffset, requestMonitor);

Return to bug 243216