From 0e2ed3f27cd51087168e1675372635c80e04ec2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20N=C3=A4tterlund?= Date: Thu, 31 Oct 2013 14:25:38 +0100 Subject: [PATCH] QNX: Fix interrupting when debugging on Windows This fixes interrupting the inferior process when debugging BlackBerry applications on Windows. The code was already in use for pure QNX application, but never BlackBerry. Change-Id: Icbf8f913475f523ca178250087bfdf3b89086605 Reviewed-by: Nicolas Arnaud-Cormos Reviewed-by: David Schulz --- src/plugins/debugger/debuggerstartparameters.h | 4 +++- src/plugins/debugger/gdb/remotegdbserveradapter.cpp | 2 +- src/plugins/qnx/blackberryruncontrolfactory.cpp | 1 + src/plugins/qnx/qnxruncontrolfactory.cpp | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/debuggerstartparameters.h b/src/plugins/debugger/debuggerstartparameters.h index 88f5a72e914..2775af53386 100644 --- a/src/plugins/debugger/debuggerstartparameters.h +++ b/src/plugins/debugger/debuggerstartparameters.h @@ -73,7 +73,8 @@ public: closeMode(KillAtClose), testReceiver(0), testCallback(0), - testCase(0) + testCase(0), + useCtrlCStub(false) {} //Core::Id profileId; @@ -136,6 +137,7 @@ public: // For QNX debugging QString remoteExecutable; + bool useCtrlCStub; // For Debugger testing. QObject *testReceiver; diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index dfe65871129..d15e5d0568d 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -63,7 +63,7 @@ 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 + m_gdbProc->setUseCtrlCStub(startParameters.useCtrlCStub); // This is only set for QNX/BlackBerry #endif connect(&m_uploadProc, SIGNAL(error(QProcess::ProcessError)), SLOT(uploadProcError(QProcess::ProcessError))); diff --git a/src/plugins/qnx/blackberryruncontrolfactory.cpp b/src/plugins/qnx/blackberryruncontrolfactory.cpp index 0ee642a87cd..0d3511076e6 100644 --- a/src/plugins/qnx/blackberryruncontrolfactory.cpp +++ b/src/plugins/qnx/blackberryruncontrolfactory.cpp @@ -127,6 +127,7 @@ Debugger::DebuggerStartParameters BlackBerryRunControlFactory::startParameters( params.startMode = Debugger::AttachToRemoteServer; params.debuggerCommand = Debugger::DebuggerKitInformation::debuggerCommand(k).toString(); params.sysRoot = ProjectExplorer::SysRootKitInformation::sysRoot(k).toString(); + params.useCtrlCStub = true; if (ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k)) params.toolChainAbi = tc->targetAbi(); diff --git a/src/plugins/qnx/qnxruncontrolfactory.cpp b/src/plugins/qnx/qnxruncontrolfactory.cpp index 9b670c203d2..9ecb3dd431d 100644 --- a/src/plugins/qnx/qnxruncontrolfactory.cpp +++ b/src/plugins/qnx/qnxruncontrolfactory.cpp @@ -76,6 +76,7 @@ static DebuggerStartParameters createDebuggerStartParameters(const QnxRunConfigu params.startMode = AttachToRemoteServer; params.debuggerCommand = DebuggerKitInformation::debuggerCommand(k).toString(); params.sysRoot = SysRootKitInformation::sysRoot(k).toString(); + params.useCtrlCStub = true; if (ToolChain *tc = ToolChainKitInformation::toolChain(k)) params.toolChainAbi = tc->targetAbi();