From 403c344c4b1d59b0ba12c7cbe54f6f1f630e4c8d Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Fri, 24 Jul 2009 15:50:30 +0200
Subject: [PATCH] debugger: add a 'swapendian' 'tool' to convert endianness of
 memory dumps

---
 tests/manual/trk/adapter.cpp    | 16 ++++++++++++++--
 tests/manual/trk/run.sh         |  1 +
 tests/manual/trk/swapendian.cpp | 23 +++++++++++++++++++++++
 tests/manual/trk/swapendian.pro |  9 +++++++++
 tests/manual/trk/trk.pro        |  3 ++-
 5 files changed, 49 insertions(+), 3 deletions(-)
 create mode 100644 tests/manual/trk/swapendian.cpp
 create mode 100644 tests/manual/trk/swapendian.pro

diff --git a/tests/manual/trk/adapter.cpp b/tests/manual/trk/adapter.cpp
index b382d0d53d8..8071b537e46 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 de673606ba3..a0d14cadeae 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 00000000000..4b6dd5cb1c7
--- /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 00000000000..acf59908964
--- /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 7d5f33e4eab..a461bb70566 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
-- 
GitLab