Commit fea6bcd9 authored by hjk's avatar hjk
Browse files

debugger: enable latin1 or utf8 char[] display

parent 25ecf5b9
......@@ -1643,11 +1643,19 @@ class Dumper:
return
if value.type.code == gdb.TYPE_CODE_ARRAY:
self.putType(realtype)
self.putAddress(value.address)
self.putNumChild(1)
baseptr = value.cast(realtype.pointer())
self.putValue("%s" % baseptr)
if format == 0 or format == 1:
# Explicityly requested Latin1 or UTF-8 formatting.
f = select(format == 0, Hex2EncodedLatin1, Hex2EncodedUtf8)
self.putAddress(value.address)
self.putType(realtype)
self.putValue(encodeCharArray(value, 100), f)
self.putNumChild(1)
else:
self.putType(realtype)
self.putAddress(value.address)
self.putValue("%s" % baseptr)
self.putNumChild(1)
if self.isExpanded(item):
charptr = lookupType("unsigned char").pointer()
addr1 = (baseptr+1).cast(charptr)
......
......@@ -702,9 +702,16 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const
<< tr("UTF8 string")
<< tr("UTF16 string")
<< tr("UCS4 string");
if (data.type.contains("char[") || data.type.contains("char ["))
return QStringList()
<< tr("Latin1 string")
<< tr("UTF8 string");
if (isIntType(data.type) && data.type != "bool")
return QStringList() << tr("decimal") << tr("hexadecimal")
<< tr("binary") << tr("octal");
return QStringList()
<< tr("decimal")
<< tr("hexadecimal")
<< tr("binary")
<< tr("octal");
// Hack: Compensate for namespaces.
QString type = data.type;
int pos = type.indexOf("::Q");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment