Debugger: Add a dumper of QStaticStringData

Change-Id: I5e4ebc31eaf7cce76b8cfd1a5c9635441eccc797
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
hjk
2016-09-22 15:31:27 +02:00
committed by hjk
parent 325f63c732
commit e08b1a070b
2 changed files with 17 additions and 6 deletions

View File

@@ -1280,6 +1280,12 @@ def qdump__QString(d, value):
if d.isExpanded(): if d.isExpanded():
d.putArrayData(data, size, d.createType("QChar")) d.putArrayData(data, size, d.createType("QChar"))
def qdump__QStaticStringData(d, value):
size = value.type.templateArgument(0, numeric=True)
(ref, size, alloc, pad, offset, data) = value.split('iii@p%ss' % (2 * size))
d.putValue(d.hexencode(data), "utf16")
d.putPlainChildren(value)
def qdump__QStringData(d, value): def qdump__QStringData(d, value):
d.putStringValueByAddress(value.integer()) d.putStringValueByAddress(value.integer())
d.putNumChild(0) d.putNumChild(0)

View File

@@ -3112,11 +3112,14 @@ void tst_Dumpers::dumper_data()
"l.takeFirst();\n" "l.takeFirst();\n"
"l << \" World \";\n\n" "l << \" World \";\n\n"
"QString str1(\"Hello Qt\");\n" "QString str1(\"Hello Qt\"); unused(&str1);\n"
"QString str2(\"Hello\\nQt\");\n" "QString str2(\"Hello\\nQt\"); unused(&str2);\n"
"QString str3(\"Hello\\rQt\");\n" "QString str3(\"Hello\\rQt\"); unused(&str3);\n"
"QString str4(\"Hello\\tQt\");\n" "QString str4(\"Hello\\tQt\"); unused(&str4);\n\n"
"unused(&str1, &str2, &str3, &str4);\n")
"QStaticStringData<1> sd;\n"
"sd.data[0] = 'Q';\n"
"sd.data[1] = 0;\n")
+ CoreProfile() + CoreProfile()
@@ -3142,7 +3145,9 @@ void tst_Dumpers::dumper_data()
+ Check("str1", "\"Hello Qt\"", "@QString") + Check("str1", "\"Hello Qt\"", "@QString")
+ Check("str2", "\"Hello\nQt\"", "@QString") + Check("str2", "\"Hello\nQt\"", "@QString")
+ Check("str3", "\"Hello\rQt\"", "@QString") + Check("str3", "\"Hello\rQt\"", "@QString")
+ Check("str4", "\"Hello\tQt\"", "@QString"); + Check("str4", "\"Hello\tQt\"", "@QString")
+ Check("sd", "\"Q\"", "@QStaticStringData<1>");
QTest::newRow("QStringReference") QTest::newRow("QStringReference")