debugger: fix hex input when changing register values

Change-Id: I198e1631d488aff9250e3438ed2fade5aa89968b
Reviewed-on: http://codereview.qt-project.org/4888
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
hjk
2011-09-14 13:00:58 +02:00
committed by hjk
parent ce9ea72c67
commit a67d8205b1
2 changed files with 6 additions and 9 deletions

View File

@@ -3611,14 +3611,7 @@ void GdbEngine::reloadRegisters()
void GdbEngine::setRegisterValue(int nr, const QString &value) void GdbEngine::setRegisterValue(int nr, const QString &value)
{ {
Register reg = registerHandler()->registers().at(nr); Register reg = registerHandler()->registers().at(nr);
//qDebug() << "NOT IMPLEMENTED: CHANGE REGISTER " << nr << reg.name << ":" postCommand("set $" + reg.name + "=" + value.toLatin1());
// << 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));
reloadRegisters(); reloadRegisters();
} }

View File

@@ -111,7 +111,11 @@ public:
return; return;
IntegerWatchLineEdit *lineEdit = qobject_cast<IntegerWatchLineEdit*>(editor); IntegerWatchLineEdit *lineEdit = qobject_cast<IntegerWatchLineEdit*>(editor);
QTC_ASSERT(lineEdit, return); 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, void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,