diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index c86202d474cec6fb5b2c277c87ced80f1718c6b2..f286a47d15e784a3ffea28f9da0001085f148290 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1561,14 +1561,18 @@ class Dumper: ## Generic pointer type with format None #warn("GENERIC AUTODEREF POINTER: %s" % value.address) innerType = realtype.target() - self.putType(innerType) - savedCurrentChildType = self.currentChildType - self.currentChildType = stripClassTag(str(innerType)) - self.putItemHelper( - Item(item.value.dereference(), item.iname, None, None)) - self.currentChildType = savedCurrentChildType - self.putPointerValue(value.address) - return + innerTypeName = str(innerType.unqualified()) + # Never dereference char types. + if innerTypeName != "char" and innerTypeName != "signed char" \ + and innerTypeName != "unsigned char" and innerTypeName != "wchar_t": + self.putType(innerType) + savedCurrentChildType = self.currentChildType + self.currentChildType = stripClassTag(str(innerType)) + self.putItemHelper( + Item(item.value.dereference(), item.iname, None, None)) + self.currentChildType = savedCurrentChildType + self.putPointerValue(value.address) + return # Fall back to plain pointer printing. #warn("GENERIC PLAIN POINTER: %s" % value.type)