diff --git a/tests/manual/trk/adapter.cpp b/tests/manual/trk/adapter.cpp index b382d0d53d88eb3330efd8e23c3fec594af1e1e9..8071b537e46e5e31e7822a2b4dcf1acbdcb282b7 100644 --- a/tests/manual/trk/adapter.cpp +++ b/tests/manual/trk/adapter.cpp @@ -396,7 +396,8 @@ void Adapter::handleGdbResponse(const QByteArray &response) else if (response == "!") { sendGdbAckMessage(); - sendGdbMessage("OK", "extended mode enabled"); + sendGdbMessage("", "extended mode not enabled"); + //sendGdbMessage("OK", "extended mode enabled"); } else if (response.startsWith("?")) { @@ -645,6 +646,16 @@ void Adapter::handleGdbResponse(const QByteArray &response) // // 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 { logMessage("FIXME unknown: " + response); } @@ -886,7 +897,8 @@ void Adapter::handleResult(const TrkResult &result) // uint tid = extractInt(data + 8); // ThreadID: 4 bytes //logMessage(prefix << " ADDR: " << addr << " PID: " << pid << " TID: " << tid); sendTrkAck(result.token); - sendGdbMessage("S11", "Target stopped"); + //sendGdbMessage("S11", "Target stopped"); + sendGdbMessage("S05", "Target stopped"); break; } case 0x91: { // Notify Exception (obsolete) diff --git a/tests/manual/trk/run.sh b/tests/manual/trk/run.sh index de673606ba3d80da53d832410efd9ba070d5942c..a0d14cadeae347928a903ad4d54ede3c58056fbd 100755 --- a/tests/manual/trk/run.sh +++ b/tests/manual/trk/run.sh @@ -10,6 +10,7 @@ trkservername="TRKSERVER-${userid}"; gdbserverip=127.0.0.1 gdbserverport=$[2222 + ${userid}] memorydump=TrkDump-78-6a-40-00.bin +memorydump=TrkDump-78-6a-40-00-BigEndian.bin fuser -n tcp -k ${gdbserverport} rm /tmp/${trkservername} diff --git a/tests/manual/trk/swapendian.cpp b/tests/manual/trk/swapendian.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4b6dd5cb1c7c30e52ca14c685e270a79010bfdf5 --- /dev/null +++ b/tests/manual/trk/swapendian.cpp @@ -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(); +} + diff --git a/tests/manual/trk/swapendian.pro b/tests/manual/trk/swapendian.pro new file mode 100644 index 0000000000000000000000000000000000000000..acf599089647e888686c75601009488f72f09448 --- /dev/null +++ b/tests/manual/trk/swapendian.pro @@ -0,0 +1,9 @@ + +TEMPLATE = app + +QT = core + +HEADERS += \ + +SOURCES += \ + swapendian.cpp diff --git a/tests/manual/trk/trk.pro b/tests/manual/trk/trk.pro index 7d5f33e4eabf7502a6625ddb12fdb2f2a5bfbbc6..a461bb70566ec03c593cda5c127bc41d37a5f6c8 100644 --- a/tests/manual/trk/trk.pro +++ b/tests/manual/trk/trk.pro @@ -1,7 +1,8 @@ TEMPLATE = subdirs -SUBDIRS = trkserver adapter +SUBDIRS = trkserver adapter swapendian trkserver.file = trkserver.pro adapter.file = adapter.pro +swapendian.file = swapendian.pro