diff options
author | Christian Stenger <christian.stenger@qt.io> | 2022-05-13 10:05:47 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2022-05-13 08:53:55 +0000 |
commit | 9be10225cc5a85a87e70638952e742ba5dab2503 (patch) | |
tree | 6b3280248b6614585fa08263886d9810671d741b | |
parent | 0334d4886b67dc9fe7393fdb04d636dc44e8f492 (diff) | |
download | qt-creator-9be10225cc5a85a87e70638952e742ba5dab2503.tar.gz |
Dumper: Fix Environment dumper
Change-Id: I48349ca550981d19cf0087bccd38e4d2677d1897
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | share/qtcreator/debugger/creatortypes.py | 62 |
1 files changed, 37 insertions, 25 deletions
diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py index 5d6b5e0414..1a75590e4e 100644 --- a/share/qtcreator/debugger/creatortypes.py +++ b/share/qtcreator/debugger/creatortypes.py @@ -263,32 +263,44 @@ def qdump__Utils__Environment(d, value): qdump__Utils__NameValueDictionary(d, value) +def qdump__Utils__DictKey(d, value): + d.putStringValue(value["name"]) + + def qdump__Utils__NameValueDictionary(d, value): - dptr = d.extractPointer(value["m_values"]) - (ref, n) = d.split('ii', dptr) - d.check(0 <= n and n <= 100 * 1000 * 1000) - d.check(-1 <= ref and ref < 100000) - - d.putItemCount(n) - if d.isExpanded(): - if n > 10000: - n = 10000 - - typeCode = 'ppp@{%s}@{%s}' % ("Utils::DictKey", "QString") - - def helper(node): - (p, left, right, padding1, key, padding2, value) = d.split(typeCode, node) - if left: - for res in helper(left): - yield res - yield (key["name"], value) - if right: - for res in helper(right): - yield res - - with Children(d, n): - for (pair, i) in zip(helper(dptr + 8), range(n)): - d.putPairItem(i, pair, 'key', 'value') + dptr = d.extractPointer(value) + if d.qtVersion() >= 0x60000: + if dptr == 0: + d.putItemCount(0) + return + m = value['d']['d']['m'] + d.putItem(m) + d.putBetterType('Utils::NameValueDictionary') + else: # Qt5 + (ref, n) = d.split('ii', dptr) + d.check(0 <= n and n <= 100 * 1000 * 1000) + d.check(-1 <= ref and ref < 100000) + + d.putItemCount(n) + if d.isExpanded(): + if n > 10000: + n = 10000 + + typeCode = 'ppp@{%s}@{%s}' % ("Utils::DictKey", "@QPair<@QString,bool>") + + def helper(node): + (p, left, right, padding1, key, padding2, value) = d.split(typeCode, node) + if left: + for res in helper(left): + yield res + yield (key["name"], value) + if right: + for res in helper(right): + yield res + + with Children(d, n): + for (pair, i) in zip(helper(dptr + 8), range(n)): + d.putPairItem(i, pair, 'key', 'value') def qdump__Utf8String(d, value): |