diff --git a/src/plugins/debugger/lldb/guest/lldbengineguest.cpp b/src/plugins/debugger/lldb/guest/lldbengineguest.cpp index 436e945b66c7252b234a851bc97418ad8648d583..2a590e385cbb914fff8d868a67e4ac43d9d727c7 100644 --- a/src/plugins/debugger/lldb/guest/lldbengineguest.cpp +++ b/src/plugins/debugger/lldb/guest/lldbengineguest.cpp @@ -61,8 +61,7 @@ .arg(QLatin1String(Q_FUNC_INFO))); \ qDebug("%s", Q_FUNC_INFO) -#define SYNC_INFERIOR QMutexLocker locker(&m_runLock) -#define SYNC_INFERIOR_OR(x) if (!m_runLock.tryLock()) { x; } else { m_runLock.unlock(); }; SYNC_INFERIOR +#define SYNC_INFERIOR_OR(x) if (m_running) { x; } namespace Debugger { @@ -79,7 +78,6 @@ void LldbEventListener::listen(lldb::SBListener *listener) LldbEngineGuest::LldbEngineGuest() : IPCEngineGuest() - , m_runLock (QMutex::Recursive) , m_running (false) , m_worker (new LldbEventListener) , m_lldb (new lldb::SBDebugger) @@ -304,7 +302,8 @@ void LldbEngineGuest::executeJumpToLine(const QString &fileName, int lineNumber) void LldbEngineGuest::activateFrame(qint64 token) { DEBUG_FUNC_ENTER; - SYNC_INFERIOR; + SYNC_INFERIOR_OR(showMessage(QLatin1String( + "activateFrame called while inferior running")); return); currentFrameChanged(token); m_localesCache.clear(); @@ -658,7 +657,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev) switch (m_process->GetState()) { case lldb::eStateRunning: // 5 if (!m_running) { - m_runLock.lock(); m_running = true; } notifyInferiorPid(m_process->GetProcessID()); @@ -679,7 +677,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev) break; case lldb::eStateExited: // 9 if (m_running) { - m_runLock.unlock(); m_running = false; } switch (state()) { @@ -700,7 +697,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev) break; case lldb::eStateStopped: // 4 if (m_running) { - m_runLock.unlock(); m_running = false; } switch (state()) { @@ -720,7 +716,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev) break; case lldb::eStateCrashed: // 7 if (m_running) { - m_runLock.unlock(); m_running = false; } switch (state()) { diff --git a/src/plugins/debugger/lldb/guest/lldbengineguest.h b/src/plugins/debugger/lldb/guest/lldbengineguest.h index 4c465410ab24d51c09cf41d4a660412716427d4b..d8d06a6411fc61d119a9e6b5b9f6effc6a79ed61 100644 --- a/src/plugins/debugger/lldb/guest/lldbengineguest.h +++ b/src/plugins/debugger/lldb/guest/lldbengineguest.h @@ -35,7 +35,6 @@ #include <QtCore/QQueue> #include <QtCore/QVariant> #include <QtCore/QThread> -#include <QtCore/QMutex> #include <QtCore/QStringList> #include <lldb/API/LLDB.h> @@ -99,7 +98,6 @@ public: const WatchUpdateFlags &flags); private: - QMutex m_runLock; bool m_running; QList<QByteArray> m_arguments; @@ -133,3 +131,4 @@ private slots: } // namespace Debugger #endif // DEBUGGER_LLDBENGINE_H +#define SYNC_INFERIOR diff --git a/src/plugins/debugger/lldb/lldbenginehost.cpp b/src/plugins/debugger/lldb/lldbenginehost.cpp index 55ea519cda400f1882d3ca84d00f2ff5fbb3f796..34a01b4b5d1cb87b897682b8851a2cecef37d981 100644 --- a/src/plugins/debugger/lldb/lldbenginehost.cpp +++ b/src/plugins/debugger/lldb/lldbenginehost.cpp @@ -96,6 +96,7 @@ LldbEngineHost::LldbEngineHost(const DebuggerStartParameters &startParameters) LldbEngineHost::~LldbEngineHost() { + showMessage(QLatin1String("tear down qtcreator-lldb")); disconnect(m_guestProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(finished (int, QProcess::ExitStatus))); m_guestProcess->terminate();