aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-11-12 11:39:01 +0100
committerEike Ziller <eike.ziller@qt.io>2020-11-12 11:39:01 +0100
commit46d204617309dd033ded2b82d8e0423c0df1f2ec (patch)
treea04af19dab0d0d629f4817f73ce5a7cd98af2bef /share
parent1e8ed5092d251ae91392e52db58703b89e5514a4 (diff)
parent524cad144a80f1bddbc0aed09648e9cf307b2ba3 (diff)
Merge remote-tracking branch 'origin/4.13' into 4.14
Conflicts: src/shared/qbs Change-Id: If75741825f5788165f9bf2f0248e976811273b6a
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/debugger/stdtypes.py33
1 files changed, 27 insertions, 6 deletions
diff --git a/share/qtcreator/debugger/stdtypes.py b/share/qtcreator/debugger/stdtypes.py
index 0d8623e89b..4de5baf4f9 100644
--- a/share/qtcreator/debugger/stdtypes.py
+++ b/share/qtcreator/debugger/stdtypes.py
@@ -729,13 +729,24 @@ def qdumpHelper__std__string__QNX(d, value, charType, format):
def qdumpHelper__std__string__MSVC(d, value, charType, format):
- (proxy, buffer, size, alloc) = value.split("p16spp")
+ try:
+ (proxy, buffer, size, alloc) = value.split("p16spp")
+ d.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000)
+ except RuntimeError:
+ proxy = None
+ (buffer, size, alloc) = value.split("16spp")
+ d.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000)
_BUF_SIZE = int(16 / charType.size())
- d.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000)
if _BUF_SIZE <= alloc:
- (proxy, data) = value.split("pp")
+ if proxy is None:
+ data = value.extractPointer()
+ else:
+ (proxy, data) = value.split("pp")
else:
- data = value.address() + d.ptrSize()
+ if proxy is None:
+ data = value.address()
+ else:
+ data = value.address() + d.ptrSize()
d.putCharArrayHelper(data, size, charType, format)
@@ -1098,8 +1109,18 @@ def qdumpHelper__std__vector__QNX(d, value):
(proxy, start, last, end) = value.split("pppp")
size = (last - start) // innerType.size()
- d.check(0 <= size and size <= 1000 * 1000 * 1000)
- d.check(last <= end)
+ try:
+ d.check(0 <= size and size <= 1000 * 1000 * 1000)
+ d.check(last <= end)
+ except RuntimeError:
+ if isBool:
+ (start, last, end, size) = value.split("pppi")
+ else:
+ (start, last, end) = value.split("ppp")
+ size = (last - start) // innerType.size()
+ d.check(0 <= size and size <= 1000 * 1000 * 1000)
+ d.check(last <= end)
+
if size > 0:
d.checkPointer(start)
d.checkPointer(last)