forked from qt-creator/qt-creator
Debugger: fix dumper for msvc release builds
... for std::vector and std::string. Change-Id: I5c823b6c1b7b510344eeea4e1d5db0791d5c8e53 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -730,13 +730,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)
|
||||
|
||||
|
||||
@@ -1099,8 +1110,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)
|
||||
|
Reference in New Issue
Block a user