forked from qt-creator/qt-creator
Debugger: Fix memory editing.
Typing characters > 127 caused signedness problems (causing large uints to be passed to the debuggers). Reviewed-by: hjk
This commit is contained in:
@@ -333,8 +333,10 @@ QByteArray cdbWriteMemoryCommand(quint64 addr, const QByteArray &data)
|
|||||||
str.setIntegerBase(16);
|
str.setIntegerBase(16);
|
||||||
str << "f " << addr << " L" << data.size();
|
str << "f " << addr << " L" << data.size();
|
||||||
const int count = data.size();
|
const int count = data.size();
|
||||||
for (int i = 0 ; i < count ; i++ )
|
for (int i = 0 ; i < count ; i++ ) {
|
||||||
str << ' ' << int(data.at(i));
|
const unsigned char uc = (unsigned char)data.at(i);
|
||||||
|
str << ' ' << unsigned(uc);
|
||||||
|
}
|
||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3954,7 +3954,8 @@ void GdbEngine::changeMemory(MemoryAgent *agent, QObject *token,
|
|||||||
QByteArray cmd = "-data-write-memory " + QByteArray::number(addr) + " d 1";
|
QByteArray cmd = "-data-write-memory " + QByteArray::number(addr) + " d 1";
|
||||||
foreach (char c, data) {
|
foreach (char c, data) {
|
||||||
cmd.append(' ');
|
cmd.append(' ');
|
||||||
cmd.append(QByteArray::number(uint(c)));
|
const unsigned char uc = (unsigned char)c;
|
||||||
|
cmd.append(QByteArray::number(uint(uc)));
|
||||||
}
|
}
|
||||||
postCommand(cmd, NeedsStop, CB(handleChangeMemory),
|
postCommand(cmd, NeedsStop, CB(handleChangeMemory),
|
||||||
QVariant::fromValue(MemoryAgentCookie(agent, token, addr)));
|
QVariant::fromValue(MemoryAgentCookie(agent, token, addr)));
|
||||||
|
Reference in New Issue
Block a user