forked from qt-creator/qt-creator
Debugger: Don't use quotes around single chars when editing registers
Change-Id: Id45a919dba4f49e8d389bb3e77bbede5b4d98a89 Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
@@ -141,7 +141,7 @@ bool RegisterValue::operator==(const RegisterValue &other)
|
|||||||
return v.u64[0] == other.v.u64[0] && v.u64[1] == other.v.u64[1];
|
return v.u64[0] == other.v.u64[0] && v.u64[1] == other.v.u64[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static QByteArray formatRegister(quint64 v, int size, RegisterFormat format)
|
static QByteArray formatRegister(quint64 v, int size, RegisterFormat format, bool forEdit)
|
||||||
{
|
{
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
if (format == HexadecimalFormat) {
|
if (format == HexadecimalFormat) {
|
||||||
@@ -163,19 +163,26 @@ static QByteArray formatRegister(quint64 v, int size, RegisterFormat format)
|
|||||||
result = QByteArray::number(sv, 10);
|
result = QByteArray::number(sv, 10);
|
||||||
result.prepend(QByteArray(2*size - result.size(), ' '));
|
result.prepend(QByteArray(2*size - result.size(), ' '));
|
||||||
} else if (format == CharacterFormat) {
|
} else if (format == CharacterFormat) {
|
||||||
|
bool spacesOnly = true;
|
||||||
if (v >= 32 && v < 127) {
|
if (v >= 32 && v < 127) {
|
||||||
|
spacesOnly = false;
|
||||||
|
if (!forEdit)
|
||||||
result += '\'';
|
result += '\'';
|
||||||
result += char(v);
|
result += char(v);
|
||||||
|
if (!forEdit)
|
||||||
result += '\'';
|
result += '\'';
|
||||||
} else {
|
} else {
|
||||||
result += " ";
|
result += " ";
|
||||||
}
|
}
|
||||||
|
if (spacesOnly && forEdit)
|
||||||
|
result.clear();
|
||||||
|
else
|
||||||
result.prepend(QByteArray(2*size - result.size(), ' '));
|
result.prepend(QByteArray(2*size - result.size(), ' '));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray RegisterValue::toByteArray(RegisterKind kind, int size, RegisterFormat format) const
|
QByteArray RegisterValue::toByteArray(RegisterKind kind, int size, RegisterFormat format, bool forEdit) const
|
||||||
{
|
{
|
||||||
if (!known)
|
if (!known)
|
||||||
return "[inaccessible]";
|
return "[inaccessible]";
|
||||||
@@ -188,12 +195,12 @@ QByteArray RegisterValue::toByteArray(RegisterKind kind, int size, RegisterForma
|
|||||||
|
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
if (size > 8) {
|
if (size > 8) {
|
||||||
result += formatRegister(v.u64[1], size - 8, format);
|
result += formatRegister(v.u64[1], size - 8, format, forEdit);
|
||||||
size = 8;
|
size = 8;
|
||||||
if (format != HexadecimalFormat)
|
if (format != HexadecimalFormat)
|
||||||
result += ',';
|
result += ',';
|
||||||
}
|
}
|
||||||
return result + formatRegister(v.u64[0], size, format);
|
return result + formatRegister(v.u64[0], size, format, forEdit);
|
||||||
}
|
}
|
||||||
|
|
||||||
RegisterValue RegisterValue::subValue(int size, int index) const
|
RegisterValue RegisterValue::subValue(int size, int index) const
|
||||||
@@ -582,7 +589,8 @@ QVariant RegisterEditItem::data(int column, int role) const
|
|||||||
case RegisterValueColumn: {
|
case RegisterValueColumn: {
|
||||||
RegisterItem *registerItem = static_cast<RegisterItem *>(parent()->parent());
|
RegisterItem *registerItem = static_cast<RegisterItem *>(parent()->parent());
|
||||||
RegisterValue value = registerItem->m_reg.value;
|
RegisterValue value = registerItem->m_reg.value;
|
||||||
return value.subValue(m_subSize, m_index).toByteArray(m_subKind, m_subSize, m_subFormat);
|
return value.subValue(m_subSize, m_index)
|
||||||
|
.toByteArray(m_subKind, m_subSize, m_subFormat, role == Qt::EditRole);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case Qt::ToolTipRole: {
|
case Qt::ToolTipRole: {
|
||||||
|
|||||||
@@ -86,7 +86,8 @@ public:
|
|||||||
bool operator!=(const RegisterValue &other) { return !operator==(other); }
|
bool operator!=(const RegisterValue &other) { return !operator==(other); }
|
||||||
|
|
||||||
void fromByteArray(const QByteArray &ba, RegisterFormat format);
|
void fromByteArray(const QByteArray &ba, RegisterFormat format);
|
||||||
QByteArray toByteArray(RegisterKind kind, int size, RegisterFormat format) const;
|
QByteArray toByteArray(RegisterKind kind, int size, RegisterFormat format,
|
||||||
|
bool forEdit = false) const;
|
||||||
|
|
||||||
RegisterValue subValue(int size, int index) const;
|
RegisterValue subValue(int size, int index) const;
|
||||||
void setSubValue(int size, int index, RegisterValue subValue);
|
void setSubValue(int size, int index, RegisterValue subValue);
|
||||||
|
|||||||
Reference in New Issue
Block a user