diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 9795251c9ed8e34e23e61c1ae6552df827a0f1e4..4ff2a80639695d6fceb30fb254e1b7a5180c5800 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -1378,11 +1378,17 @@ def qdump__QRectF(d, item): def qdump__QRegion(d, item): - d.putValue(" ") - d.putNumChild(1) - if d.isExpanded(item): - with Children(d): - d.putCallItem("rects", item, "rects()") + p = item.value["d"].dereference()["qt_rgn"] + if isNull(p): + d.putValue("<empty>") + d.putNumChild(0) + else: + n = str(p.dereference()["numRects"]) + d.putItemCount(n) + d.putNumChild(n) + if d.isExpanded(item): + with Children(d): + d.putFields(Item(p.dereference(), item.iname)) # qt_rgn might be 0 # gdb.parse_and_eval("region")["d"].dereference()["qt_rgn"].dereference() diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp index b71114418eca50f7a6967ac7b289771bc43efc27..3842c31d464ce8c85b6bd3ffa2e10c1ad0fa9b79 100644 --- a/tests/manual/gdbdebugger/simple/app.cpp +++ b/tests/manual/gdbdebugger/simple/app.cpp @@ -810,6 +810,9 @@ void testQRegion() region += QRect(100, 100, 200, 200); region += QRect(300, 300, 400, 500); region += QRect(500, 500, 600, 600); + region += QRect(500, 500, 600, 600); + region += QRect(500, 500, 600, 600); + region += QRect(500, 500, 600, 600); }