diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp index 2b6dba0149ee1512225e78c53641974d3598ac60..7c766dff31ec64c8d9b1b834ddf26fa5f596fc6e 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 ef0b7d402cac485ab7161efb8097ad7cc662812e..144f85f4f8dd9af3e40aed65a8ffb2845f8c7dcc 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) {