From f5ac79a20f61d4bab4be1d76f788c17f5f8607d1 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 27 Sep 2017 16:48:32 +0200 Subject: [PATCH] Debugger: Combine some gdb startup code paths After splitting out terminal and core handling they are essentially the same. Change-Id: I603cea74186eada5728295b430c9385812dcc4cd Reviewed-by: Orgad Shaneh --- src/plugins/debugger/gdb/gdbengine.cpp | 66 +++++++------------------- src/plugins/debugger/gdb/gdbengine.h | 1 - 2 files changed, 17 insertions(+), 50 deletions(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 1d158c49a1b..d589d987dd1 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3719,8 +3719,24 @@ static SourcePathMap mergeStartParametersSourcePathMap(const DebuggerRunParamete // Starting up & shutting down // -void GdbEngine::startGdb(const QStringList &args) +void GdbEngine::setupEngine() { + CHECK_STATE(EngineSetupRequested); + showMessage("TRYING TO START ADAPTER"); + + if (isRemoteEngine() && HostOsInfo::isWindowsHost()) + m_gdbProc.setUseCtrlCStub(runParameters().useCtrlCStub); // This is only set for QNX + + QStringList gdbArgs; + if (isPlainEngine()) { + if (!m_outputCollector.listen()) { + handleAdapterStartFailed(tr("Cannot set up communication with child process: %1") + .arg(m_outputCollector.errorString())); + return; + } + gdbArgs.append("--tty=" + m_outputCollector.serverName()); + } + const QString tests = QString::fromLocal8Bit(qgetenv("QTC_DEBUGGER_TESTS")); foreach (const QStringRef &test, tests.splitRef(QLatin1Char(','))) m_testCases.insert(test.toInt()); @@ -3739,12 +3755,10 @@ void GdbEngine::startGdb(const QStringList &args) return; } - QStringList gdbArgs; gdbArgs << "-i"; gdbArgs << "mi"; if (!boolSetting(LoadGdbInit)) gdbArgs << "-n"; - gdbArgs += args; connect(&m_gdbProc, &QProcess::errorOccurred, this, &GdbEngine::handleGdbError); connect(&m_gdbProc, static_cast(&QProcess::finished), @@ -4245,52 +4259,6 @@ bool GdbEngine::isTermEngine() const return !isCoreEngine() && !isAttachEngine() && !isRemoteEngine() && terminal(); } -void GdbEngine::setupEngine() -{ - m_startMode = runParameters().startMode; - - CHECK_STATE(EngineSetupRequested); - showMessage("TRYING TO START ADAPTER"); - - if (isAttachEngine()) { - - startGdb(); - - } else if (isRemoteEngine()) { - - if (HostOsInfo::isWindowsHost()) - m_gdbProc.setUseCtrlCStub(runParameters().useCtrlCStub); // This is only set for QNX - - startGdb(); - - } else if (isTermEngine()) { - - showMessage("TRYING TO START ADAPTER"); - - startGdb(); - - } else if (isCoreEngine()) { - - CHECK_STATE(EngineSetupRequested); - showMessage("TRYING TO START ADAPTER"); - - startGdb(); - - } else if (isPlainEngine()) { - - QStringList gdbArgs; - - if (!m_outputCollector.listen()) { - handleAdapterStartFailed(tr("Cannot set up communication with child process: %1") - .arg(m_outputCollector.errorString())); - return; - } - gdbArgs.append("--tty=" + m_outputCollector.serverName()); - - startGdb(gdbArgs); - } -} - void GdbEngine::setupInferior() { CHECK_STATE(InferiorSetupRequested); diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index 0ae1e876744..5d481f590fb 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -96,7 +96,6 @@ private: ////////// General Interface ////////// ////////// Gdb Process Management ////////// - void startGdb(const QStringList &args = QStringList()); void handleInferiorShutdown(const DebuggerResponse &response); void handleGdbExit(const DebuggerResponse &response); void setLinuxOsAbi();