diff options
author | hjk <qtc-committer@nokia.com> | 2009-01-07 15:03:49 +0100 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2009-01-07 15:03:49 +0100 |
commit | b4c1552ec2f223d9c2096c6e498d68675d98b7fd (patch) | |
tree | 7cb6a702fa5cd252a5ce2515e1a07564a2479232 /bin | |
parent | cb78617ed9a5f9866c4aa885c2c1645980300516 (diff) |
handle Qt 4.4 and Qt 4.5's QMap in dumpers
Diffstat (limited to 'bin')
-rw-r--r-- | bin/gdbmacros/gdbmacros.cpp | 20 |
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(); } |