From 515b6266c53094ce2337b5accef166659dc26891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20N=C3=A4tterlund?= Date: Fri, 3 May 2013 13:52:52 +0200 Subject: QNX: Fix shutdown of inferior and inserting breakpoints on Windows When debugging on a QNX device on Windows, neither DebugBreakProcess(..) nor "-exec-interrupt" works for interrupting the inferior process. Neither does sending it a SIGINT signal using "kill" on the device. This changes the local gdb process to run under the CtrlC stub on Windows when debugging on QNX. This enables us to send a Ctrl+C message to gdb, which interrupts the inferior, and allows us to insert breakpoints during runtime on Windows. Change-Id: I4b01fbe81138f3fe7a939a7e64267bac4eb8bf43 Reviewed-by: Andreas Holzammer Reviewed-by: Oswald Buddenhagen Reviewed-by: hjk --- src/plugins/debugger/gdb/remotegdbserveradapter.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/plugins/debugger/gdb/remotegdbserveradapter.cpp') diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index 70285fea1b..d4aec4c21d 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -62,6 +62,9 @@ GdbRemoteServerEngine::GdbRemoteServerEngine(const DebuggerStartParameters &star { m_isMulti = false; m_targetPid = -1; +#ifdef Q_OS_WIN + m_gdbProc.setUseCtrlCStub(!startParameters.remoteExecutable.isEmpty()); // This is only set for QNX +#endif connect(&m_uploadProc, SIGNAL(error(QProcess::ProcessError)), SLOT(uploadProcError(QProcess::ProcessError))); connect(&m_uploadProc, SIGNAL(readyReadStandardOutput()), @@ -427,6 +430,10 @@ void GdbRemoteServerEngine::interruptInferior2() if (debuggerCore()->boolSetting(TargetAsync)) { postCommand("-exec-interrupt", GdbEngine::Immediate, CB(handleInterruptInferior)); +#ifdef Q_OS_WIN + } else if (m_isQnxGdb) { + m_gdbProc.winInterruptByCtrlC(); +#endif } else { bool ok = m_gdbProc.interrupt(); if (!ok) { -- cgit v1.2.1