summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2009-01-07 15:03:49 +0100
committerhjk <qtc-committer@nokia.com>2009-01-07 15:03:49 +0100
commitb4c1552ec2f223d9c2096c6e498d68675d98b7fd (patch)
tree7cb6a702fa5cd252a5ce2515e1a07564a2479232 /bin
parentcb78617ed9a5f9866c4aa885c2c1645980300516 (diff)
downloadqt-creator-b4c1552ec2f223d9c2096c6e498d68675d98b7fd.tar.gz
handle Qt 4.4 and Qt 4.5's QMap in dumpers
Diffstat (limited to 'bin')
-rw-r--r--bin/gdbmacros/gdbmacros.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/bin/gdbmacros/gdbmacros.cpp b/bin/gdbmacros/gdbmacros.cpp
index 04a04abf8f..1ba8333d6e 100644
--- a/bin/gdbmacros/gdbmacros.cpp
+++ b/bin/gdbmacros/gdbmacros.cpp
@@ -1367,14 +1367,22 @@ static void qDumpQMap(QDumper &d)
P(d, "addr", addOffset(node, valueOffset));
} else {
P(d, "name", "[" << i << "]");
- P(d, "type", NS"QMapNode<" << keyType << "," << valueType << " >");
+#if QT_VERSION >= 0x040500
// actually, any type (even 'char') will do...
- P(d, "exp", "*('"NS"QMapNode<" << keyType << "," << valueType << " >'*)" << node);
+ P(d, "type", NS"QMapNode<"
+ << keyType << "," << valueType << " >");
+ P(d, "exp", "*('"NS"QMapNode<"
+ << keyType << "," << valueType << " >'*)" << node);
+
//P(d, "exp", "*('"NS"QMapData'*)" << (void*)node);
//P(d, "exp", "*(char*)" << (void*)node);
-
// P(d, "addr", node); does not work as gdb fails to parse
- // e.g. &((*('"NS"QMapNode<QString,Foo>'*)0x616658))
+#else
+ P(d, "type", NS"QMapData::Node<"
+ << keyType << "," << valueType << " >");
+ P(d, "exp", "*('"NS"QMapData::Node<"
+ << keyType << "," << valueType << " >'*)" << node);
+#endif
}
d.endHash();
@@ -2483,6 +2491,10 @@ void qDumpObjectData440(
"\"std::vector\","
"\"std::wstring\","
"]";
+ d << ",qtversion=["
+ "\"" << ((QT_VERSION >> 16) & 255) << "\","
+ "\"" << ((QT_VERSION >> 8) & 255) << "\","
+ "\"" << ((QT_VERSION) & 255) << "\"]";
d << ",namespace=\""NS"\"";
d.disarm();
}