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. // We really should set it to false when GDB supports it though.
// Something to fix later. // Something to fix later.
if (isNonStop) { 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( 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) { new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) {
@Override @Override
protected void handleSuccess() { 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( fCommandControl.queueCommand(
new RawCommand(fCommandControl.getControlDMContext(), "set breakpoint always-inserted 1"), //$NON-NLS-1$ new RawCommand(fCommandControl.getControlDMContext(), asyncCommandStr),
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) { new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) {
@Override @Override
protected void handleSuccess() { protected void handleSuccess() {
fCommandControl.queueCommand( fCommandControl.queueCommand(
new MIGDBSetNonStop(fCommandControl.getControlDMContext(), true), new RawCommand(fCommandControl.getControlDMContext(), "set pagination off"), //$NON-NLS-1$
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor)); new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor) {
@Override
protected void handleSuccess() {
fCommandControl.queueCommand(
new MIGDBSetNonStop(fCommandControl.getControlDMContext(), true),
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor));
}
});
} }
}); });
} }
}); });
} else { } else {
requestMonitor.done(); requestMonitor.done();
} }