From 01deb7e24fd222770cc41c539f56d545011143e4 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Tue, 25 Aug 2009 13:45:28 +0200 Subject: [PATCH] Trk: Answer NAK to xfer request --- tests/manual/trk/adapter.cpp | 27 +++++++++++++++++++++++++-- tests/manual/trk/run.pl | 6 +++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/tests/manual/trk/adapter.cpp b/tests/manual/trk/adapter.cpp index 8e2b447e8a9..da11abedba7 100644 --- a/tests/manual/trk/adapter.cpp +++ b/tests/manual/trk/adapter.cpp @@ -776,8 +776,31 @@ void Adapter::handleGdbResponse(const QByteArray &response) // Command: 0x80 Acknowledge // Error: 0x00 // [80 09 00 00 00 00 0A] - } - + } else if (response.startsWith("qPart:") || response.startsWith("qXfer:")) { + QByteArray data = response.mid(1 + response.indexOf(':')); + // "qPart:auxv:read::0,147": Read OS auxiliary data (see info aux) + bool handled = false; + if (data.startsWith("auxv:read::")) { + const int offsetPos = data.lastIndexOf(':') + 1; + const int commaPos = data.lastIndexOf(','); + if (commaPos != -1) { + bool ok1 = false, ok2 = false; + const int offset = data.mid(offsetPos, commaPos - offsetPos).toInt(&ok1, 16); + const int length = data.mid(commaPos + 1).toInt(&ok2, 16); + if (ok1 && ok2) { + const QString msg = QString::fromLatin1("Read of OS auxilary vector (%1, %2) not implemented.").arg(offset).arg(length); + logMessage(msgGdbPacket(msg), true); + sendGdbMessage("E20", msg.toLatin1()); + handled = true; + } + } + } // auxv read + if (!handled) { + const QString msg = QLatin1String("FIXME unknown 'XFER'-request: ") + QString::fromAscii(response); + logMessage(msgGdbPacket(msg), true); + sendGdbMessage("E20", msg.toLatin1()); + } + } // qPart/qXfer else { logMessage(msgGdbPacket(QLatin1String("FIXME unknown: ") + QString::fromAscii(response))); } diff --git a/tests/manual/trk/run.pl b/tests/manual/trk/run.pl index 3e62c99111c..2d5a0700242 100755 --- a/tests/manual/trk/run.pl +++ b/tests/manual/trk/run.pl @@ -130,7 +130,11 @@ if ($adapterpid == 0) { exit(0); } die ('Unable to launch adapter') if $adapterpid == -1; -waitpid($adapterpid, 0) if ($waitAdapter > 0); + +if ($waitAdapter > 0) { + print '### kill -USR1 ',$adapterpid,"\n"; + waitpid($adapterpid, 0); +} # ------- Write out .gdbinit my $gdbInit = <<EOF; # This is generated. Changes will be lost. -- GitLab