forked from qt-creator/qt-creator
Cdb: Add register size and type to the gdmi structure.
Change-Id: I8c87a92e6a76165a99c3654b7b71bd539a51d67c Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
@@ -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 ® = 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)
|
||||
|
||||
@@ -129,6 +129,7 @@ struct Register
|
||||
|
||||
std::wstring name;
|
||||
std::wstring description;
|
||||
std::wstring type;
|
||||
int size;
|
||||
bool subRegister;
|
||||
bool pseudoRegister;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user