diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-11-12 11:39:01 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-11-12 11:39:01 +0100 |
commit | 46d204617309dd033ded2b82d8e0423c0df1f2ec (patch) | |
tree | a04af19dab0d0d629f4817f73ce5a7cd98af2bef /share | |
parent | 1e8ed5092d251ae91392e52db58703b89e5514a4 (diff) | |
parent | 524cad144a80f1bddbc0aed09648e9cf307b2ba3 (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.py | 33 |
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) |