diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 344f73dfb185312b64f268043a26e4e18cd7f36b..f6641302e3ce0eeae266278bcb61d00371236454 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3611,14 +3611,7 @@ void GdbEngine::reloadRegisters() 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(); } diff --git a/src/plugins/debugger/registerwindow.cpp b/src/plugins/debugger/registerwindow.cpp index 735894b3f7434f76b35d858214a3c60e92d3c3e1..04b06705ff8f31c437d074d5d0ebf5835fac1aa1 100644 --- a/src/plugins/debugger/registerwindow.cpp +++ b/src/plugins/debugger/registerwindow.cpp @@ -111,7 +111,11 @@ public: 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,