forked from qt-creator/qt-creator
debugger: add a 'swapendian' 'tool' to convert endianness of memory dumps
This commit is contained in:
@@ -396,7 +396,8 @@ void Adapter::handleGdbResponse(const QByteArray &response)
|
|||||||
|
|
||||||
else if (response == "!") {
|
else if (response == "!") {
|
||||||
sendGdbAckMessage();
|
sendGdbAckMessage();
|
||||||
sendGdbMessage("OK", "extended mode enabled");
|
sendGdbMessage("", "extended mode not enabled");
|
||||||
|
//sendGdbMessage("OK", "extended mode enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (response.startsWith("?")) {
|
else if (response.startsWith("?")) {
|
||||||
@@ -645,6 +646,16 @@ void Adapter::handleGdbResponse(const QByteArray &response)
|
|||||||
// // vCont[;action[:thread-id]]...'
|
// // vCont[;action[:thread-id]]...'
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
else if (response.startsWith("vKill")) {
|
||||||
|
// kill
|
||||||
|
sendGdbAckMessage();
|
||||||
|
QByteArray ba;
|
||||||
|
appendByte(&ba, 0); // Sub-command: Delete Process
|
||||||
|
appendInt(&ba, m_session.pid);
|
||||||
|
sendTrkMessage(0x41, 0, ba, "Delete process"); // Delete Item
|
||||||
|
sendGdbMessageAfterSync("", "process killed");
|
||||||
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
logMessage("FIXME unknown: " + response);
|
logMessage("FIXME unknown: " + response);
|
||||||
}
|
}
|
||||||
@@ -886,7 +897,8 @@ void Adapter::handleResult(const TrkResult &result)
|
|||||||
// uint tid = extractInt(data + 8); // ThreadID: 4 bytes
|
// uint tid = extractInt(data + 8); // ThreadID: 4 bytes
|
||||||
//logMessage(prefix << " ADDR: " << addr << " PID: " << pid << " TID: " << tid);
|
//logMessage(prefix << " ADDR: " << addr << " PID: " << pid << " TID: " << tid);
|
||||||
sendTrkAck(result.token);
|
sendTrkAck(result.token);
|
||||||
sendGdbMessage("S11", "Target stopped");
|
//sendGdbMessage("S11", "Target stopped");
|
||||||
|
sendGdbMessage("S05", "Target stopped");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x91: { // Notify Exception (obsolete)
|
case 0x91: { // Notify Exception (obsolete)
|
||||||
|
@@ -10,6 +10,7 @@ trkservername="TRKSERVER-${userid}";
|
|||||||
gdbserverip=127.0.0.1
|
gdbserverip=127.0.0.1
|
||||||
gdbserverport=$[2222 + ${userid}]
|
gdbserverport=$[2222 + ${userid}]
|
||||||
memorydump=TrkDump-78-6a-40-00.bin
|
memorydump=TrkDump-78-6a-40-00.bin
|
||||||
|
memorydump=TrkDump-78-6a-40-00-BigEndian.bin
|
||||||
|
|
||||||
fuser -n tcp -k ${gdbserverport}
|
fuser -n tcp -k ${gdbserverport}
|
||||||
rm /tmp/${trkservername}
|
rm /tmp/${trkservername}
|
||||||
|
23
tests/manual/trk/swapendian.cpp
Normal file
23
tests/manual/trk/swapendian.cpp
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#include <QtCore>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QFile file1(argv[1]);
|
||||||
|
file1.open(QIODevice::ReadOnly);
|
||||||
|
|
||||||
|
QByteArray ba = file1.readAll();
|
||||||
|
file1.close();
|
||||||
|
|
||||||
|
for (int i = 0; i < ba.size(); i += 4) {
|
||||||
|
char c = ba[i]; ba[i] = ba[i + 3]; ba[i + 3] = c;
|
||||||
|
c = ba[i + 1]; ba[i + 1] = ba[i + 2]; ba[i + 2] = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFile file2(argv[2]);
|
||||||
|
file2.open(QIODevice::WriteOnly);
|
||||||
|
file2.write(ba);
|
||||||
|
file2.close();
|
||||||
|
}
|
||||||
|
|
9
tests/manual/trk/swapendian.pro
Normal file
9
tests/manual/trk/swapendian.pro
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
TEMPLATE = app
|
||||||
|
|
||||||
|
QT = core
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
swapendian.cpp
|
@@ -1,7 +1,8 @@
|
|||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
SUBDIRS = trkserver adapter
|
SUBDIRS = trkserver adapter swapendian
|
||||||
|
|
||||||
trkserver.file = trkserver.pro
|
trkserver.file = trkserver.pro
|
||||||
adapter.file = adapter.pro
|
adapter.file = adapter.pro
|
||||||
|
swapendian.file = swapendian.pro
|
||||||
|
Reference in New Issue
Block a user