void GdbEngine::setRegisterValue(int nr, const QString &value)
{
Register reg = registerHandler()->registers().at(nr);
- //qDebug() << "NOT IMPLEMENTED: CHANGE REGISTER " << nr << reg.name << ":"
- // << value;
- postCommand("-var-delete \"R@\"");
- postCommand("-var-create \"R@\" * $" + reg.name);
- postCommand("-var-assign \"R@\" " + value.toLatin1());
- postCommand("-var-delete \"R@\"");
- //postCommand("-data-list-register-values d",
- // Discardable, CB(handleRegisterListValues));
+ postCommand("set $" + reg.name + "=" + value.toLatin1());
reloadRegisters();
}
return;
IntegerWatchLineEdit *lineEdit = qobject_cast<IntegerWatchLineEdit*>(editor);
QTC_ASSERT(lineEdit, return);
- currentEngine()->setRegisterValue(index.row(), lineEdit->text());
+ const int base = currentHandler()->numberBase();
+ QString value = lineEdit->text();
+ if (base == 16 && !value.startsWith("0x"))
+ value = "0x" + value;
+ currentEngine()->setRegisterValue(index.row(), value);
}
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,