Debugger: Fix QFlags dumper for cdb

Also adding a test covering this dumper.

Change-Id: I491dd87e52f65bf3faf21d81436f264507bf0b51
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2017-03-29 12:31:38 +02:00
parent 7ff7aefeb3
commit 4e4b5833da
2 changed files with 14 additions and 3 deletions

View File

@@ -642,10 +642,10 @@ def qdump__QFiniteStack(d, value):
def qdump__QFlags(d, value):
i = value.split('{int}')[0]
enumType = value.type[0]
if d.isLldb:
d.putValue(i.cast(enumType.name).display())
else:
if d.isGdb:
d.putValue(i.cast('enum ' + enumType.name).display())
else:
d.putValue(i.cast(enumType.name).display())
d.putNumChild(0)

View File

@@ -1895,6 +1895,17 @@ void tst_Dumpers::dumper_data()
+ Check("c", "120", "@QChar");
QTest::newRow("QFlags")
<< Data("#include <QFlags>\n"
"enum Foo { a = 0x1, b = 0x2 };\n"
"Q_DECLARE_FLAGS(FooFlags, Foo)\n"
"Q_DECLARE_OPERATORS_FOR_FLAGS(FooFlags)\n",
"FooFlags f1(a);\n"
"FooFlags f2(a | b);\n")
+ CoreProfile()
+ Check("f1", "a (1)", TypeDef("QFlags<enum Foo>", "FooFlags"))
+ Check("f2", "(a | b) (3)", "FooFlags") % GdbEngine;
QTest::newRow("QDateTime")
<< Data("#include <QDateTime>\n",