From aa12eeef3a8ea3eaed3d6d863b9f5cdbc4b0a8f1 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Wed, 7 Jan 2015 02:05:52 -0800 Subject: [PATCH] Qt: Update debugger portions to use threadInterrupt/threadContinue --- src/platform/qt/GDBController.cpp | 15 ++++++--------- src/platform/qt/GameController.cpp | 5 ++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/platform/qt/GDBController.cpp b/src/platform/qt/GDBController.cpp index 27d366de7..467d0409e 100644 --- a/src/platform/qt/GDBController.cpp +++ b/src/platform/qt/GDBController.cpp @@ -49,28 +49,25 @@ void GDBController::detach() { if (!isAttached()) { return; } - bool wasPaused = m_gameController->isPaused(); disconnect(m_gameController, SIGNAL(frameAvailable(const uint32_t*)), this, SLOT(updateGDB())); - m_gameController->setPaused(true); + m_gameController->threadInterrupt(); GDBStubShutdown(&m_gdbStub); m_gameController->setDebugger(nullptr); - m_gameController->setPaused(wasPaused); + m_gameController->threadContinue(); } void GDBController::listen() { + m_gameController->threadInterrupt(); if (!isAttached()) { attach(); } - bool wasPaused = m_gameController->isPaused(); connect(m_gameController, SIGNAL(frameAvailable(const uint32_t*)), this, SLOT(updateGDB())); - m_gameController->setPaused(true); GDBStubListen(&m_gdbStub, m_port, m_bindAddress); - m_gameController->setPaused(wasPaused); + m_gameController->threadContinue(); } void GDBController::updateGDB() { - bool wasPaused = m_gameController->isPaused(); - m_gameController->setPaused(true); + m_gameController->threadInterrupt(); GDBStubUpdate(&m_gdbStub); - m_gameController->setPaused(wasPaused); + m_gameController->threadContinue(); } diff --git a/src/platform/qt/GameController.cpp b/src/platform/qt/GameController.cpp index 388943406..b5b2792f6 100644 --- a/src/platform/qt/GameController.cpp +++ b/src/platform/qt/GameController.cpp @@ -146,8 +146,7 @@ ARMDebugger* GameController::debugger() { } void GameController::setDebugger(ARMDebugger* debugger) { - bool wasPaused = isPaused(); - setPaused(true); + threadInterrupt(); if (m_threadContext.debugger && GBAThreadHasStarted(&m_threadContext)) { GBADetachDebugger(m_threadContext.gba); } @@ -155,7 +154,7 @@ void GameController::setDebugger(ARMDebugger* debugger) { if (m_threadContext.debugger && GBAThreadHasStarted(&m_threadContext)) { GBAAttachDebugger(m_threadContext.gba, m_threadContext.debugger); } - setPaused(wasPaused); + threadContinue(); } #endif