From 0428a109e858a7f01662611a345f1a974751c036 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 29 Apr 2009 15:09:08 +0200 Subject: [PATCH] debugger: fix output of weak and strong reference counts in QSharedPointer dumper --- share/qtcreator/gdbmacros/gdbmacros.cpp | 19 +++++++++++++++++-- src/plugins/debugger/watchhandler.cpp | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp index 2b6dba0149e..7c766dff31e 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.cpp +++ b/share/qtcreator/gdbmacros/gdbmacros.cpp @@ -1972,8 +1972,23 @@ static void qDumpQSharedPointer(QDumper &d) P(d, "name", "data"); qDumpInnerValue(d, d.innertype, ptr.data()); d.endHash(); - I(d, "strongref", 44); - I(d, "weakref", 45); + const int v = sizeof(void *); + d.beginHash(); + const void *weak = addOffset(deref(addOffset(d.data, v)), v); + P(d, "name", "weakref"); + P(d, "value", *static_cast<const int *>(weak)); + P(d, "type", "int"); + P(d, "addr", weak); + P(d, "numchild", "0"); + d.endHash(); + d.beginHash(); + const void *strong = addOffset(weak, sizeof(int)); + P(d, "name", "strongref"); + P(d, "value", *static_cast<const int *>(strong)); + P(d, "type", "int"); + P(d, "addr", strong); + P(d, "numchild", "0"); + d.endHash(); d << "]"; } d.disarm(); diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index ef0b7d402ca..144f85f4f8d 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -808,6 +808,8 @@ void WatchHandler::cleanup() m_completeSet = initialSet(); m_displaySet = m_completeSet; + rebuildModel(); // to get the dummy entries back + #if 0 for (EditWindows::ConstIterator it = m_editWindows.begin(); it != m_editWindows.end(); ++it) { -- GitLab