diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp index 510d22b7e68f6f4e72731d094b2cb55a98fc483e..8912bb884828c21d68b27daebf75ed9fbe024630 100644 --- a/src/plugins/debugger/gdb/classicgdbengine.cpp +++ b/src/plugins/debugger/gdb/classicgdbengine.cpp @@ -695,9 +695,11 @@ static bool parseConsoleStream(const GdbResponse &response, GdbMi *contents) return contents->isValid(); } -void GdbEngine::updateLocalsClassic(const QVariant &cookie) +void GdbEngine::updateLocalsClassic() { PRECONDITION; + m_pendingWatchRequests = 0; + m_pendingBreakpointRequests = 0; m_processedNames.clear(); if (0 && debugPending) @@ -713,7 +715,7 @@ void GdbEngine::updateLocalsClassic(const QVariant &cookie) CB(handleStackListArgumentsClassic)); // '2' is 'list with type and value' postCommand("-stack-list-locals 2", WatchUpdate, - CB(handleStackListLocalsClassic), cookie); // stage 2/2 + CB(handleStackListLocalsClassic)); // stage 2/2 } static inline QString msgRetrievingWatchData(int pending) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 1d8ece3d0e44e8e1d74acb72ffddf4ef7f8a7027..ee26f799d668d13d13924f810cc19e34a4fa1d83 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3628,16 +3628,15 @@ bool GdbEngine::setToolTipExpression(const QPoint &mousePos, qDebug() << "GdbEngine::setToolTipExpression2 " << exp << (*m_toolTipContext); if (isSynchronous()) { - updateLocals(QVariant()); - return true; + updateLocalsPython(true, tooltipIName(exp)); + } else { + WatchData toolTip; + toolTip.exp = exp.toLatin1(); + toolTip.name = exp; + toolTip.iname = tooltipIName(exp); + watchHandler()->removeData(toolTip.iname); + watchHandler()->insertData(toolTip); } - - WatchData toolTip; - toolTip.exp = exp.toLatin1(); - toolTip.name = exp; - toolTip.iname = tooltipIName(exp); - watchHandler()->removeData(toolTip.iname); - watchHandler()->insertData(toolTip); return true; } @@ -3715,10 +3714,7 @@ void GdbEngine::updateWatchData(const WatchData &data, const WatchUpdateFlags &f && m_pendingWatchRequests == 0 && m_pendingBreakpointRequests == 0; - if (tryPartial) - updateLocalsPython(true, data.iname); - else - updateLocals(); + updateLocalsPython(tryPartial, data.iname); #endif } else { // Bump requests to avoid model rebuilding during the nested @@ -3846,14 +3842,12 @@ void GdbEngine::handleDebuggingHelperSetup(const GdbResponse &response) } } -void GdbEngine::updateLocals(const QVariant &cookie) +void GdbEngine::updateLocals() { - m_pendingWatchRequests = 0; - m_pendingBreakpointRequests = 0; if (hasPython()) updateLocalsPython(false, QByteArray()); else - updateLocalsClassic(cookie); + updateLocalsClassic(); } // Parse a local variable from GdbMi. diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index c0ae53fabbbd3d7eead121b759f2686daebed33e..6e4666f8452d4fd9797c247aa5559d49b18b4a53 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -644,8 +644,8 @@ private: ////////// View & Data Stuff ////////// Q_SLOT void createFullBacktrace(); void handleCreateFullBacktrace(const GdbResponse &response); - void updateLocals(const QVariant &cookie = QVariant()); - void updateLocalsClassic(const QVariant &cookie); + void updateLocals(); + void updateLocalsClassic(); void updateLocalsPython(bool tryPartial, const QByteArray &varList); void handleStackFramePython(const GdbResponse &response); diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp index b6adf5a129b43f00cb08ce58c82403f22844dc3d..99273e840df685cbbd93b5a3eeea86510def5c6d 100644 --- a/src/plugins/debugger/gdb/pythongdbengine.cpp +++ b/src/plugins/debugger/gdb/pythongdbengine.cpp @@ -54,6 +54,8 @@ namespace Internal { void GdbEngine::updateLocalsPython(bool tryPartial, const QByteArray &varList) { PRECONDITION; + m_pendingWatchRequests = 0; + m_pendingBreakpointRequests = 0; m_processedNames.clear(); WatchHandler *handler = watchHandler(); handler->beginCycle(!tryPartial);