forked from qt-creator/qt-creator
Unable to change the value of a variable while debugging Symbian - issue fixed
Reviewed-by: hjk
This commit is contained in:
@@ -829,6 +829,17 @@ void TrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd)
|
||||
sendGdbServerMessage("E20", msg.toLatin1());
|
||||
}
|
||||
} // qPart/qXfer
|
||||
|
||||
else if (cmd.startsWith("X")) {
|
||||
logMessage(msgGdbPacket(QLatin1String("Write memory")));
|
||||
// X addr,length
|
||||
sendGdbServerAck();
|
||||
const QPair<quint64, unsigned> addrLength = parseGdbReadMemoryRequest(cmd);
|
||||
int pos = cmd.indexOf(':');
|
||||
m_snapshot.resetMemory();
|
||||
writeMemory(addrLength.first, cmd.mid(pos + 1, addrLength.second));
|
||||
}
|
||||
|
||||
else {
|
||||
logMessage(msgGdbPacket(QLatin1String("FIXME unknown: ")
|
||||
+ QString::fromAscii(cmd)), LogWarning);
|
||||
@@ -1444,6 +1455,29 @@ void TrkGdbAdapter::readMemory(uint addr, uint len, bool buffered)
|
||||
tryAnswerGdbMemoryRequest(buffered);
|
||||
}
|
||||
|
||||
void TrkGdbAdapter::writeMemory(uint addr, const QByteArray &data)
|
||||
{
|
||||
Q_ASSERT(data.size() < (2 << 16));
|
||||
if (m_verbose > 2) {
|
||||
logMessage(_("writeMemory %1 bytes from 0x%2 blocksize=%3 data=%4")
|
||||
.arg(data.size()).arg(addr, 0, 16).arg(MemoryChunkSize).arg(QString::fromLatin1(data.toHex())));
|
||||
}
|
||||
|
||||
sendTrkMessage(0x11, TrkCB(handleWriteMemory),
|
||||
trkWriteMemoryMessage(addr, data));
|
||||
}
|
||||
|
||||
void TrkGdbAdapter::handleWriteMemory(const TrkResult &result)
|
||||
{
|
||||
logMessage(" RESULT: " + result.toString() + result.cookie.toString());
|
||||
if (result.errorCode()) {
|
||||
logMessage("ERROR: " + result.errorString(), LogError);
|
||||
sendGdbServerMessage("E01");
|
||||
return;
|
||||
}
|
||||
sendGdbServerMessage("OK");
|
||||
}
|
||||
|
||||
void TrkGdbAdapter::interruptInferior()
|
||||
{
|
||||
sendTrkMessage(0x1a, TrkCallback(), trkInterruptMessage(), "Interrupting...");
|
||||
|
||||
Reference in New Issue
Block a user