forked from qt-creator/qt-creator
Debugger: Fix some python std dumper for cdb
std::deque std::list std::shared_ptr std::valarray Change-Id: Ibc9f54b22d47a2a26c08c633d599a48d48694700 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -56,7 +56,7 @@ def qdump__std____1__complex(d, value):
|
|||||||
|
|
||||||
|
|
||||||
def qdump__std__deque(d, value):
|
def qdump__std__deque(d, value):
|
||||||
if d.isQnxTarget():
|
if d.isQnxTarget() or d.isMsvcTarget():
|
||||||
qdump__std__deque__QNX(d, value)
|
qdump__std__deque__QNX(d, value)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -117,15 +117,20 @@ def qdump__std__deque__QNX(d, value):
|
|||||||
else:
|
else:
|
||||||
bufsize = 1
|
bufsize = 1
|
||||||
|
|
||||||
myoff = value['_Myoff']
|
try:
|
||||||
mysize = value['_Mysize']
|
val = value['_Mypair']['_Myval2']
|
||||||
mapsize = value['_Mapsize']
|
except:
|
||||||
|
val = value
|
||||||
|
|
||||||
|
myoff = val['_Myoff'].integer()
|
||||||
|
mysize = val['_Mysize'].integer()
|
||||||
|
mapsize = val['_Mapsize'].integer()
|
||||||
|
|
||||||
d.check(0 <= mapsize and mapsize <= 1000 * 1000 * 1000)
|
d.check(0 <= mapsize and mapsize <= 1000 * 1000 * 1000)
|
||||||
d.putItemCount(mysize)
|
d.putItemCount(mysize)
|
||||||
if d.isExpanded():
|
if d.isExpanded():
|
||||||
with Children(d, mysize, maxNumChild=2000, childType=innerType):
|
with Children(d, mysize, maxNumChild=2000, childType=innerType):
|
||||||
map = value['_Map']
|
map = val['_Map']
|
||||||
for i in d.childRange():
|
for i in d.childRange():
|
||||||
block = myoff / bufsize
|
block = myoff / bufsize
|
||||||
offset = myoff - (block * bufsize)
|
offset = myoff - (block * bufsize)
|
||||||
@@ -139,7 +144,7 @@ def qdump__std____debug__deque(d, value):
|
|||||||
|
|
||||||
|
|
||||||
def qdump__std__list(d, value):
|
def qdump__std__list(d, value):
|
||||||
if d.isQnxTarget():
|
if d.isQnxTarget() or d.isMsvcTarget():
|
||||||
qdump__std__list__QNX(d, value)
|
qdump__std__list__QNX(d, value)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -167,7 +172,7 @@ def qdump__std__list(d, value):
|
|||||||
|
|
||||||
def qdump__std__list__QNX(d, value):
|
def qdump__std__list__QNX(d, value):
|
||||||
node = value["_Myhead"]
|
node = value["_Myhead"]
|
||||||
size = value["_Mysize"]
|
size = value["_Mysize"].integer()
|
||||||
|
|
||||||
d.putItemCount(size, 1000)
|
d.putItemCount(size, 1000)
|
||||||
|
|
||||||
@@ -607,13 +612,22 @@ def qdump__std____1__wstring(d, value):
|
|||||||
|
|
||||||
|
|
||||||
def qdump__std__shared_ptr(d, value):
|
def qdump__std__shared_ptr(d, value):
|
||||||
|
if d.isMsvcTarget:
|
||||||
|
i = value["_Ptr"]
|
||||||
|
else:
|
||||||
i = value["_M_ptr"]
|
i = value["_M_ptr"]
|
||||||
|
|
||||||
if i.integer() == 0:
|
if i.integer() == 0:
|
||||||
d.putValue("(null)")
|
d.putValue("(null)")
|
||||||
d.putNumChild(0)
|
d.putNumChild(0)
|
||||||
return
|
return
|
||||||
with Children(d):
|
with Children(d):
|
||||||
short = d.putSubItem("data", i)
|
short = d.putSubItem("data", i)
|
||||||
|
if d.isMsvcTarget:
|
||||||
|
refcount = value["_Rep"]
|
||||||
|
d.putIntItem("usecount", refcount["_Uses"])
|
||||||
|
d.putIntItem("weakcount", refcount["_Weaks"])
|
||||||
|
else:
|
||||||
refcount = value["_M_refcount"]["_M_pi"]
|
refcount = value["_M_refcount"]["_M_pi"]
|
||||||
d.putIntItem("usecount", refcount["_M_use_count"])
|
d.putIntItem("usecount", refcount["_M_use_count"])
|
||||||
d.putIntItem("weakcount", refcount["_M_weak_count"])
|
d.putIntItem("weakcount", refcount["_M_weak_count"])
|
||||||
@@ -767,6 +781,9 @@ def qform__std__valarray():
|
|||||||
return arrayForms()
|
return arrayForms()
|
||||||
|
|
||||||
def qdump__std__valarray(d, value):
|
def qdump__std__valarray(d, value):
|
||||||
|
if d.isMsvcTarget():
|
||||||
|
(data, size) = value.split('pp')
|
||||||
|
else:
|
||||||
(size, data) = value.split('pp')
|
(size, data) = value.split('pp')
|
||||||
d.putItemCount(size)
|
d.putItemCount(size)
|
||||||
d.putPlotData(data, size, value.type[0])
|
d.putPlotData(data, size, value.type[0])
|
||||||
|
Reference in New Issue
Block a user