forked from qt-creator/qt-creator
Dumper: robustify msvc std vector/string dumpers
By looking for debug members instead of relying on a failing size check. Task-number: QTCREATORBUG-24901 Change-Id: Ia79ba893243e864c7808e89ee7e29ba4b853f754 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -744,9 +744,9 @@ def qdumpHelper__std__string__QNX(d, value, charType, format):
|
|||||||
|
|
||||||
def qdumpHelper__std__string__MSVC(d, value, charType, format):
|
def qdumpHelper__std__string__MSVC(d, value, charType, format):
|
||||||
try:
|
try:
|
||||||
|
_ = value["_Mypair"]["_Myval2"]["_Myproxy"]
|
||||||
(proxy, buffer, size, alloc) = value.split("p16spp")
|
(proxy, buffer, size, alloc) = value.split("p16spp")
|
||||||
d.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000)
|
except Exception:
|
||||||
except RuntimeError:
|
|
||||||
proxy = None
|
proxy = None
|
||||||
(buffer, size, alloc) = value.split("16spp")
|
(buffer, size, alloc) = value.split("16spp")
|
||||||
d.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000)
|
d.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000)
|
||||||
@@ -1128,21 +1128,21 @@ def qdumpHelper__std__vector__libcxx(d, value):
|
|||||||
def qdumpHelper__std__vector__msvc(d, value):
|
def qdumpHelper__std__vector__msvc(d, value):
|
||||||
inner_type = value.type[0]
|
inner_type = value.type[0]
|
||||||
if inner_type.name == "bool":
|
if inner_type.name == "bool":
|
||||||
proxy1, proxy2, start, finish, alloc, size = value.split("pppppi")
|
|
||||||
try:
|
try:
|
||||||
d.check(0 <= size and size <= 1000 * 1000 * 1000)
|
_ = value["_Myproxy"]
|
||||||
d.check(finish <= alloc)
|
proxy1, proxy2, start, finish, alloc, size = value.split("pppppi")
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
start, finish, alloc, size = value.split("pppi")
|
start, finish, alloc, size = value.split("pppi")
|
||||||
|
d.check(0 <= size and size <= 1000 * 1000 * 1000)
|
||||||
qdumpHelper__std__vector__bool(d, start, size, inner_type)
|
qdumpHelper__std__vector__bool(d, start, size, inner_type)
|
||||||
else:
|
else:
|
||||||
proxy, start, finish, alloc = value.split("pppp")
|
|
||||||
size = (finish - start) // inner_type.size()
|
|
||||||
try:
|
try:
|
||||||
d.check(0 <= size and size <= 1000 * 1000 * 1000)
|
_ = value["_Mypair"]["_Myval2"]["_Myproxy"]
|
||||||
d.check(finish <= alloc)
|
proxy, start, finish, alloc = value.split("pppp")
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
start, finish, alloc = value.split("ppp")
|
start, finish, alloc = value.split("ppp")
|
||||||
|
size = (finish - start) // inner_type.size()
|
||||||
|
d.check(0 <= size and size <= 1000 * 1000 * 1000)
|
||||||
qdumpHelper__std__vector__nonbool(d, start, finish, alloc, inner_type)
|
qdumpHelper__std__vector__nonbool(d, start, finish, alloc, inner_type)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user