Cdb: Add register size and type to the gdmi structure.

Change-Id: I8c87a92e6a76165a99c3654b7b71bd539a51d67c
Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
David Schulz
2015-08-27 09:51:01 +02:00
parent 58e391fe18
commit bbe8195d01
3 changed files with 15 additions and 2 deletions

View File

@@ -509,6 +509,8 @@ Registers getRegisters(CIDebugRegisters *regs,
reg.description = registerDescription(description);
reg.subRegister = isSubRegister;
reg.value = value;
reg.size = valueSize(description.Type);
reg.type = valueType(description.Type);
rc.push_back(reg);
}
}
@@ -527,6 +529,7 @@ Registers getRegisters(CIDebugRegisters *regs,
reg.name = buf;
reg.description = valueType(type);
reg.size = valueSize(type);
reg.type = valueType(type);
reg.value = value;
rc.push_back(reg);
}
@@ -557,7 +560,8 @@ std::string gdbmiRegisters(CIDebugRegisters *regs,
const Register &reg = registers.at(r);
if (r)
str << ',';
str << "{number=\"" << r << "\",name=\"" << gdbmiWStringFormat(reg.name) << '"';
str << "{number=\"" << r << "\",name=\"" << gdbmiWStringFormat(reg.name)
<< "\",size=\"" << reg.size << "\",type=\"" << gdbmiWStringFormat(reg.type) << '"';
if (!reg.description.empty())
str << ",description=\"" << gdbmiWStringFormat(reg.description) << '"';
if (reg.subRegister)

View File

@@ -129,6 +129,7 @@ struct Register
std::wstring name;
std::wstring description;
std::wstring type;
int size;
bool subRegister;
bool pseudoRegister;

View File

@@ -1669,6 +1669,14 @@ void CdbEngine::handleRegistersExt(const DebuggerResponse &response)
reg.name = item["name"].data();
reg.description = item["description"].data();
reg.reportedType = item["type"].data();
if (reg.reportedType.startsWith('I'))
reg.kind = IntegerRegister;
else if (reg.reportedType.startsWith('F'))
reg.kind = FloatRegister;
else if (reg.reportedType.startsWith('V'))
reg.kind = VectorRegister;
else
reg.kind = OtherRegister;
reg.value.fromByteArray(item["value"].data(), HexadecimalFormat);
reg.size = item["size"].data().toInt();
handler->updateRegister(reg);