diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index fa36d1f3dee..2bd9adeaa34 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -1806,7 +1806,10 @@ def qdump__QSharedPointer(d, value): def qdump__QWeakPointer(d, value): qdump_QWeakPointerHelper(d, value, True) -def qdump_QWeakPointerHelper(d, value, isWeak): +def qdump__QPointer(d, value): + qdump_QWeakPointerHelper(d, value['wp'], True, value.type[0]) + +def qdump_QWeakPointerHelper(d, value, isWeak, innerType = None): if isWeak: (d_ptr, val) = value.split('pp') else: @@ -1828,7 +1831,8 @@ def qdump_QWeakPointerHelper(d, value, isWeak): d.check(strongref <= weakref) d.check(weakref <= 10*1000*1000) - innerType = value.type[0] + if innerType is None: + innerType = value.type[0] with Children(d): short = d.putSubItem('data', d.createValue(val, innerType)) d.putIntItem('weakref', weakref) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 06414bff075..b62a0d31c18 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -3110,6 +3110,20 @@ void tst_Dumpers::dumper_data() + Check("ppp.a", "1", "int"); + QTest::newRow("QPointer") + << Data("#include \n" + "#include \n", + + "QTimer timer; unused(&timer);\n" + "QPointer ptr0; unused(&ptr0);\n" + "QPointer ptr1(&timer); unused(&ptr1);\n\n") + + + CoreProfile() + + + Check("ptr0", "(null)", "@QPointer") + + Check("ptr1", "", "@QPointer"); + + QTest::newRow("QScopedPointer") << Data("#include \n" "#include \n",