From 5117f5dff2d00e129a46b3a25a3ce6dfbe2410c3 Mon Sep 17 00:00:00 2001 From: hjk <qthjk@ovi.com> Date: Thu, 16 Feb 2012 23:41:13 +0100 Subject: [PATCH] debugger: add gdb "pretty printers" for D's char[] and string[] Change-Id: Icf690e0948d5c88b2a59b81258c97a42c5ac5251 Reviewed-by: hjk <qthjk@ovi.com> --- share/qtcreator/dumper/dumper.py | 2 ++ share/qtcreator/dumper/qttypes.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 98b93a39d12..5a43b347e2c 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -1689,6 +1689,8 @@ class Dumper: nsStrippedType = self.stripNamespaceFromType(dtypeName)\ .replace("::", "__") + # The following line is only needed for D: + #nsStrippedType = nsStrippedType.replace(" ", "__") #warn(" STRIPPED: %s" % nsStrippedType) #warn(" DUMPERS: %s" % (nsStrippedType in qqDumpers)) if nsStrippedType in qqDumpers: diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py index 7c76b412211..b216ce33d07 100644 --- a/share/qtcreator/dumper/qttypes.py +++ b/share/qtcreator/dumper/qttypes.py @@ -2373,6 +2373,37 @@ def qdump__Eigen__Matrix(d, value): s = s + 1 +####################################################################### +# +# D +# +####################################################################### + + +def qdump___Array_char(d, value): + n = value["length"] + p = value["ptr"] + d.putAddress(value.address) + d.putType("char[%d]" % n) + d.putValue(encodeCharArray(p, 100), Hex2EncodedLocal8Bit) + d.putNumChild(0) + +# DMD v2.058 encodes string[] as _Array_uns long long. With spaces. +def qdump___Array_uns__long__long(d, value): + n = value["length"] + p = value["ptr"] + d.putAddress(value.address) + d.putType("string[%d]" % n) + d.putValue(" ") + d.putNumChild(n) + innerType = p.type + if d.isExpanded(): + with Children(d, n, childType=innerType): + for i in range(0, n): + d.putSubItem(i, p.dereference()) + p = p + 1 + + ####################################################################### # # Display Test -- GitLab