From 8510d887b8c2b10b248524c9e7a459945368342b Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 15 Jan 2010 13:26:46 +0100 Subject: [PATCH] debugger: dumper for TBuf --- share/qtcreator/gdbmacros/dumper.py | 9 +++++++++ share/qtcreator/gdbmacros/gdbmacros.py | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index e2647d9ec86..dd57646627b 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -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) diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index bdfc8207787..bf0f7ce0682 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -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") +