1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 242105 Turning on non-stop on a remote target requires a slightly different command. Also, GDB pagination must be turned off to avoid blocking during non-stop.

This commit is contained in:
Marc Khouzam 2008-08-13 19:09:49 +00:00
parent ba200cd3b7
commit 39644e1d06

View file

@ -227,24 +227,38 @@ public class FinalLaunchSequence extends Sequence {
// We really should set it to false when GDB supports it though.
// Something to fix later.
if (isNonStop) {
// The two raw commands should not be necessary in the official GDB release
// The raw commands should not be necessary in the official GDB release
fCommandControl.queueCommand(
new RawCommand(fCommandControl.getControlDMContext(), "maint set linux-async 1"), //$NON-NLS-1$
new RawCommand(fCommandControl.getControlDMContext(), "set breakpoint always-inserted"), //$NON-NLS-1$
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) {
@Override
protected void handleSuccess() {
String asyncCommandStr;
if (fSessionType == SessionType.REMOTE) {
asyncCommandStr = "maint set remote-async 1"; //$NON-NLS-1$
} else {
asyncCommandStr = "maint set linux-async 1"; //$NON-NLS-1$
}
fCommandControl.queueCommand(
new RawCommand(fCommandControl.getControlDMContext(), "set breakpoint always-inserted 1"), //$NON-NLS-1$
new RawCommand(fCommandControl.getControlDMContext(), asyncCommandStr),
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) {
@Override
protected void handleSuccess() {
fCommandControl.queueCommand(
new MIGDBSetNonStop(fCommandControl.getControlDMContext(), true),
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor));
new RawCommand(fCommandControl.getControlDMContext(), "set pagination off"), //$NON-NLS-1$
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) {
@Override
protected void handleSuccess() {
fCommandControl.queueCommand(
new MIGDBSetNonStop(fCommandControl.getControlDMContext(), true),
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor));
}
});
}
});
}
});
});
} else {
requestMonitor.done();
}