From 7fbc2286000dcc62518664701c12310a3910a8b1 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Mon, 5 Jan 2009 14:56:59 +0100 Subject: [PATCH] Fixes: Fix starting external programs Details: Was broken due to duplicate but not synchronized internal pid data --- src/plugins/debugger/gdbengine.cpp | 8 ++++---- src/plugins/debugger/gdbengine.h | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index f25cb748707..7c7d3b6d328 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -650,7 +650,7 @@ void GdbEngine::interruptInferior() if (m_gdbProc.state() == QProcess::NotRunning) return; - if (q->m_attachedPID) { + if (q->m_attachedPID > 0) { if (interruptProcess(q->m_attachedPID)) qq->notifyInferiorStopped(); return; @@ -660,6 +660,7 @@ void GdbEngine::interruptInferior() sendCommand("-exec-interrupt", GdbExecInterrupt); qq->notifyInferiorStopped(); #else + qDebug() << "CANNOT STOP INFERIOR" << m_gdbProc.pid(); if (interruptChildProcess(m_gdbProc.pid())) qq->notifyInferiorStopped(); #endif @@ -672,9 +673,9 @@ void GdbEngine::maybeHandleInferiorPidChanged(const QString &pid0) qDebug() << "Cannot parse PID from " << pid0; return; } - if (pid == m_inferiorPid) + if (pid == q->m_attachedPID) return; - m_inferiorPid = pid; + q->m_attachedPID = pid; qq->notifyInferiorPidChanged(pid); } @@ -1514,7 +1515,6 @@ int GdbEngine::currentFrame() const bool GdbEngine::startDebugger() { - m_inferiorPid = 0; QStringList gdbArgs; QFileInfo fi(q->m_executable); diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h index 434a110a454..c1344f86dda 100644 --- a/src/plugins/debugger/gdbengine.h +++ b/src/plugins/debugger/gdbengine.h @@ -330,7 +330,6 @@ private: QString m_editedData; int m_pendingRequests; - int m_inferiorPid; QStringList m_availableSimpleDumpers; QString m_namespace; // namespace used in "namespaced Qt"; -- GitLab