aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/gdbmacros/gdbmacros.cpp2
-rw-r--r--src/plugins/debugger/gdbengine.cpp14
2 files changed, 8 insertions, 8 deletions
diff --git a/bin/gdbmacros/gdbmacros.cpp b/bin/gdbmacros/gdbmacros.cpp
index 0802d54a70..c58e83abf0 100644
--- a/bin/gdbmacros/gdbmacros.cpp
+++ b/bin/gdbmacros/gdbmacros.cpp
@@ -2465,6 +2465,7 @@ void qDumpObjectData440(
"\""NS"QObjectSlot\","
"\""NS"QObjectSlotList\","
#endif // PRIVATE_OBJECT_ALLOWED
+ // << "\""NS"QRegion\","
"\""NS"QSet\","
"\""NS"QString\","
"\""NS"QStringList\","
@@ -2480,7 +2481,6 @@ void qDumpObjectData440(
"\"std::string\","
"\"std::vector\","
"\"std::wstring\","
- // << "\""NS"QRegion\","
"]";
d << ",namespace=\""NS"\"";
d.disarm();
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 957a223db4..002e643c13 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -2961,11 +2961,11 @@ void GdbEngine::runCustomDumper(const WatchData & data0, bool dumpChildren)
// in rare cases we need more or less:
if (outertype == m_namespace + "QObject") {
- extraArgs[extraArgCount++] = "(char*)&((('"
+ extraArgs[0] = "(char*)&((('"
+ m_namespace + "QObjectPrivate'*)&"
+ data.exp + ")->children)-(char*)&" + data.exp;
} else if (outertype == m_namespace + "QVector") {
- extraArgs[extraArgCount++] = "(char*)&(("
+ extraArgs[1] = "(char*)&(("
+ data.exp + ").d->array)-(char*)" + data.exp + ".d";
} else if (outertype == m_namespace + "QObjectSlot"
|| outertype == m_namespace + "QObjectSignal") {
@@ -2976,16 +2976,16 @@ void GdbEngine::runCustomDumper(const WatchData & data0, bool dumpChildren)
QString slotNumber = "-1";
if (lastOpened != -1 && lastClosed != -1)
slotNumber = data.iname.mid(lastOpened + 1, lastClosed - lastOpened - 1);
- extraArgs[extraArgCount++] = slotNumber;
+ extraArgs[0] = slotNumber;
} else if (outertype == m_namespace + "QMap") {
QString nodetype = m_namespace + "QMapNode";
nodetype += data.type.mid(m_namespace.size() + 4);
//qDebug() << "OUTERTYPE: " << outertype << " NODETYPE: " << nodetype;
- extraArgs[extraArgCount++] = sizeofTypeExpression(nodetype);
- extraArgs[extraArgCount++] = "(size_t)&(('" + nodetype + "'*)0)->value";
+ extraArgs[2] = sizeofTypeExpression(nodetype);
+ extraArgs[3] = "(size_t)&(('" + nodetype + "'*)0)->value";
} else if (outertype == m_namespace + "QMapNode") {
- extraArgs[extraArgCount++] = sizeofTypeExpression(data.type);
- extraArgs[extraArgCount++] = "(size_t)&(('" + data.type + "'*)0)->value";
+ extraArgs[2] = sizeofTypeExpression(data.type);
+ extraArgs[3] = "(size_t)&(('" + data.type + "'*)0)->value";
} else if (outertype == "std::vector") {
//qDebug() << "EXTRACT TEMPLATE: " << outertype << inners;
if (inners.at(0) == "bool") {