diff options
author | hjk <[email protected]> | 2010-05-19 12:00:01 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2010-05-19 12:00:56 +0200 |
commit | c50dd8508807ba10e816a0e32f7ed60fc990df48 (patch) | |
tree | d45afd9ec8eddcbc9e3023ef35d2d050291dd468 /src/plugins/debugger/watchhandler.cpp | |
parent | 7e8c345a6413af4431c6a22b3eaf337f2ad86a4f (diff) |
debugger: show return value of last function call in Locals and Watchers view
Works only with gdb/Python so far.
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index b4cfd13f26e..f10e8fc5ed3 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -120,6 +120,10 @@ WatchModel::WatchModel(WatchHandler *handler, WatchType type) m_root->parent = 0; switch (m_type) { + case ReturnWatch: + m_root->iname = "return"; + m_root->name = WatchHandler::tr("Return Value"); + break; case LocalsWatch: m_root->iname = "local"; m_root->name = WatchHandler::tr("Locals"); @@ -964,6 +968,7 @@ WatchHandler::WatchHandler(DebuggerManager *manager) m_expandPointers = true; m_inChange = false; + m_return = new WatchModel(this, ReturnWatch); m_locals = new WatchModel(this, LocalsWatch); m_watchers = new WatchModel(this, WatchersWatch); m_tooltips = new WatchModel(this, TooltipsWatch); @@ -981,6 +986,7 @@ WatchHandler::WatchHandler(DebuggerManager *manager) void WatchHandler::beginCycle() { ++generationCounter; + m_return->beginCycle(); m_locals->beginCycle(); m_watchers->beginCycle(); m_tooltips->beginCycle(); @@ -988,6 +994,7 @@ void WatchHandler::beginCycle() void WatchHandler::endCycle() { + m_return->endCycle(); m_locals->endCycle(); m_watchers->endCycle(); m_tooltips->endCycle(); @@ -997,8 +1004,10 @@ void WatchHandler::endCycle() void WatchHandler::cleanup() { m_expandedINames.clear(); + m_return->reinitialize(); m_locals->reinitialize(); m_tooltips->reinitialize(); + m_return->m_fetchTriggered.clear(); m_locals->m_fetchTriggered.clear(); m_watchers->m_fetchTriggered.clear(); m_tooltips->m_fetchTriggered.clear(); @@ -1014,6 +1023,7 @@ void WatchHandler::cleanup() void WatchHandler::emitAllChanged() { + m_return->emitAllChanged(); m_locals->emitAllChanged(); m_watchers->emitAllChanged(); m_tooltips->emitAllChanged(); @@ -1337,6 +1347,7 @@ void WatchHandler::loadSessionData() WatchModel *WatchHandler::model(WatchType type) const { switch (type) { + case ReturnWatch: return m_return; case LocalsWatch: return m_locals; case WatchersWatch: return m_watchers; case TooltipsWatch: return m_tooltips; @@ -1347,6 +1358,8 @@ WatchModel *WatchHandler::model(WatchType type) const WatchModel *WatchHandler::modelForIName(const QByteArray &iname) const { + if (iname.startsWith("return")) + return m_return; if (iname.startsWith("local")) return m_locals; if (iname.startsWith("tooltip")) @@ -1374,6 +1387,7 @@ void WatchHandler::setFormat(const QString &type, int format) { m_typeFormats[type] = format; saveTypeFormats(); + m_return->emitDataChanged(1); m_locals->emitDataChanged(1); m_watchers->emitDataChanged(1); m_tooltips->emitDataChanged(1); |