diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index 4b7d7321467430e0ebdb9bf3a8883a5c7d6755ce..f267b7f1dd1aaef4d565997cf55be4449548250d 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -274,14 +274,17 @@ void RemoteGdbServerAdapter::runEngine() void RemoteGdbServerAdapter::interruptInferior() { QTC_ASSERT(state() == InferiorStopRequested, qDebug() << state()); - //m_engine->postCommand("-exec-interrupt", GdbEngine::Immediate, - // CB(handleInterruptInferior)); - bool ok = m_gdbProc.interrupt(); - if (!ok) { - // FIXME: Extra state needed? - m_engine->showMessage(_("NOTE: INFERIOR STOP NOT POSSIBLE")); - m_engine->showStatusMessage(tr("Interrupting not possible")); - m_engine->notifyInferiorRunOk(); + if (debuggerCore()->boolSetting(TargetAsync)) { + m_engine->postCommand("-exec-interrupt", GdbEngine::Immediate, + CB(handleInterruptInferior)); + } else { + bool ok = m_gdbProc.interrupt(); + if (!ok) { + // FIXME: Extra state needed? + m_engine->showMessage(_("NOTE: INFERIOR STOP NOT POSSIBLE")); + m_engine->showStatusMessage(tr("Interrupting not possible")); + m_engine->notifyInferiorRunOk(); + } } }