debugger: dumper for TBuf<N>

This commit is contained in:
hjk
2010-01-15 13:26:46 +01:00
parent b4e99074af
commit 8510d887b8
2 changed files with 30 additions and 0 deletions

View File

@@ -36,6 +36,15 @@ def cleanAddress(addr):
# that might trigger Unicode encoding errors.
return addr.cast(gdb.lookup_type("void").pointer())
# Workaround for gdb < 7.1
def numericTemplateArgument(type, position):
try:
return int(type.template_argument(position))
except RuntimeError as error:
# ": No type named 30."
msg = str(error)
return int(msg[14:-1])
def parseAndEvaluate(exp):
if isGoodGdb():
return gdb.parse_and_eval(exp)

View File

@@ -1878,3 +1878,24 @@ def qdump__std__basic_string(d, item):
def qdump__wstring(d, item):
qdump__std__string(d, item)
#######################################################################
#
# Symbian
#
#######################################################################
def qdump__TBuf(d, item):
size = item.value["iLength"] & 0xffff
max = numericTemplateArgument(item.value.type, 0)
check(0 <= size and size <= max)
base = item.value["iBuf"]
s = ""
for i in xrange(size):
val = int(base[i])
s += "%02x" % (val % 256)
s += "%02x" % (val / 256)
d.putNumChild(0)
d.putValue(s, "6")