|
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 |
/* |