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

Collapse All | Expand All

(-)src/org/eclipse/dd/gdb/internal/provisional/service/command/GDBControl.java (-9 / +22 lines)
Lines 51-56 Link Here
51
import org.eclipse.dd.mi.service.command.MIControlDMContext;
51
import org.eclipse.dd.mi.service.command.MIControlDMContext;
52
import org.eclipse.dd.mi.service.command.MIInferiorProcess;
52
import org.eclipse.dd.mi.service.command.MIInferiorProcess;
53
import org.eclipse.dd.mi.service.command.MIRunControlEventProcessor;
53
import org.eclipse.dd.mi.service.command.MIRunControlEventProcessor;
54
import org.eclipse.dd.mi.service.command.commands.CLIExecAbort;
54
import org.eclipse.dd.mi.service.command.commands.MIBreakInsert;
55
import org.eclipse.dd.mi.service.command.commands.MIBreakInsert;
55
import org.eclipse.dd.mi.service.command.commands.MICommand;
56
import org.eclipse.dd.mi.service.command.commands.MICommand;
56
import org.eclipse.dd.mi.service.command.commands.MIExecContinue;
57
import org.eclipse.dd.mi.service.command.commands.MIExecContinue;
Lines 194-213 Link Here
194
            2, TimeUnit.SECONDS);
195
            2, TimeUnit.SECONDS);
195
        
196
        
196
        queueCommand(
197
        queueCommand(
197
       		new MIGDBExit(fControlDmc),
198
       		// First "Kill" the debugged process, especially needed for remote debug.
199
       		new CLIExecAbort(getContext()),	
198
            new DataRequestMonitor<MIInfo>(getExecutor(), rm) { 
200
            new DataRequestMonitor<MIInfo>(getExecutor(), rm) { 
199
                @Override
201
                @Override
200
                public void handleCompleted() {
202
                protected void handleCompleted() {
201
                    // Cancel the time out runnable (if it hasn't run yet).
203
                	
202
                    if (quitTimeoutFuture.cancel(false)) {
204
                	// Regardless of status of "kill" command, now exit gdb.
203
                        if (!isSuccess()) {
205
                    queueCommand(
204
                            fMIBackend.destroy();
206
                   		new MIGDBExit(fControlDmc),
207
                        new DataRequestMonitor<MIInfo>(getExecutor(), rm) { 
208
                            @Override
209
                            public void handleCompleted() {
210
                                // Cancel the time out runnable (if it hasn't run yet).
211
                                if (quitTimeoutFuture.cancel(false)) {
212
                                    if (!isSuccess()) {
213
                                        fMIBackend.destroy();
214
                                    }
215
                                    rm.done();
216
                                }
217
                            }
205
                        }
218
                        }
206
                        rm.done();
219
                    );
207
                    }
208
                }
220
                }
209
            }
221
            }
210
        );
222
        );         
223
    	
211
    }
224
    }
212
    
225
    
213
    /*
226
    /*

Return to bug 252283