forked from qt-creator/qt-creator
debugger: work on trk manual tests
This commit is contained in:
@@ -27,9 +27,8 @@ Enter the following commands in a terminal (all as root, adjust device
|
|||||||
permissions as required to work as user):
|
permissions as required to work as user):
|
||||||
|
|
||||||
|
|
||||||
sdptool add SP # announce Serial Port Profile via Service Discovery Protocol
|
sdptool add SP # announce Serial Port Profile via Service Discovery Protocol
|
||||||
sudo mknod /dev/rfcomm0 c 216 0 # Creates a Bluetooth Serial Device
|
sudo mknod --mode=666 /dev/rfcomm0 c 216 0 # Creates a Bluetooth Serial Device
|
||||||
sudo chmod ugo+rw /dev/rfcomm0 # Give permissions)
|
|
||||||
|
|
||||||
rfcomm listen /dev/rfcomm0 1 $PWD/trklauncher -v -f {}
|
rfcomm listen /dev/rfcomm0 1 $PWD/trklauncher -v -f {}
|
||||||
|
|
||||||
|
@@ -80,9 +80,15 @@ static inline void dumpRegister(int n, uint value, QByteArray &a)
|
|||||||
a += QByteArray::number(value, 16);
|
a += QByteArray::number(value, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct AdapterOptions {
|
struct AdapterOptions
|
||||||
AdapterOptions() : verbose(1),serialFrame(true),registerEndianness(LittleEndian),
|
{
|
||||||
useSocket(false), bufferedMemoryRead(true) {}
|
AdapterOptions()
|
||||||
|
: verbose(1),
|
||||||
|
serialFrame(true),
|
||||||
|
registerEndianness(LittleEndian),
|
||||||
|
useSocket(false),
|
||||||
|
bufferedMemoryRead(true)
|
||||||
|
{}
|
||||||
|
|
||||||
int verbose;
|
int verbose;
|
||||||
bool serialFrame;
|
bool serialFrame;
|
||||||
@@ -820,13 +826,13 @@ bool Adapter::openTrkPort(const QString &port, QString *errorMessage)
|
|||||||
{
|
{
|
||||||
if (m_useSocket) {
|
if (m_useSocket) {
|
||||||
QLocalSocket *socket = new QLocalSocket;
|
QLocalSocket *socket = new QLocalSocket;
|
||||||
|
m_socket = QSharedPointer<QIODevice>(new QLocalSocket);
|
||||||
socket->connectToServer(port);
|
socket->connectToServer(port);
|
||||||
if (!socket->waitForConnected()) {
|
if (!socket->waitForConnected()) {
|
||||||
*errorMessage = "Unable to connect to TRK server " + m_trkServerName + ' ' + m_socket->errorString();
|
*errorMessage = "Unable to connect to TRK server " + m_trkServerName + ' ' + socket->errorString();
|
||||||
delete socket;
|
delete socket;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m_socket = QSharedPointer<QIODevice>(socket);
|
|
||||||
m_socketDevice = QSharedPointer<TrkWriteQueueIODevice>(new TrkWriteQueueIODevice(m_socket));
|
m_socketDevice = QSharedPointer<TrkWriteQueueIODevice>(new TrkWriteQueueIODevice(m_socket));
|
||||||
connect(m_socketDevice.data(), SIGNAL(messageReceived(trk::TrkResult)), this, SLOT(handleResult(trk::TrkResult)));
|
connect(m_socketDevice.data(), SIGNAL(messageReceived(trk::TrkResult)), this, SLOT(handleResult(trk::TrkResult)));
|
||||||
if (m_verbose > 1)
|
if (m_verbose > 1)
|
||||||
@@ -1505,6 +1511,8 @@ int main(int argc, char *argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << "Adapter args: " << app.arguments();
|
||||||
|
|
||||||
Adapter adapter;
|
Adapter adapter;
|
||||||
adapter.setTrkServerName(options.trkServer);
|
adapter.setTrkServerName(options.trkServer);
|
||||||
adapter.setGdbServerName(options.gdbServer);
|
adapter.setGdbServerName(options.gdbServer);
|
||||||
|
@@ -55,7 +55,7 @@ class Runner : public QObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Runner();
|
Runner();
|
||||||
void parseArguments();
|
void parseArguments(const QStringList &args);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void output(const QString &senderName, const QString &data);
|
void output(const QString &senderName, const QString &data);
|
||||||
@@ -68,6 +68,7 @@ private slots:
|
|||||||
void handleProcStarted();
|
void handleProcStarted();
|
||||||
void handleProcStateChanged(QProcess::ProcessState newState);
|
void handleProcStateChanged(QProcess::ProcessState newState);
|
||||||
void run();
|
void run();
|
||||||
|
void runRfcomm();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class RunnerGui;
|
friend class RunnerGui;
|
||||||
@@ -84,7 +85,7 @@ private:
|
|||||||
QString m_trkServerName;
|
QString m_trkServerName;
|
||||||
bool m_runTrkServer;
|
bool m_runTrkServer;
|
||||||
bool m_isUnix;
|
bool m_isUnix;
|
||||||
int m_waitAdapter;
|
bool m_waitForAdapter;
|
||||||
QString m_gdbServerIP;
|
QString m_gdbServerIP;
|
||||||
QString m_gdbServerPort;
|
QString m_gdbServerPort;
|
||||||
|
|
||||||
@@ -102,7 +103,7 @@ Runner::Runner()
|
|||||||
#endif
|
#endif
|
||||||
m_endianness = "little";
|
m_endianness = "little";
|
||||||
m_runTrkServer = true;
|
m_runTrkServer = true;
|
||||||
m_waitAdapter = 0;
|
m_waitForAdapter = false;
|
||||||
|
|
||||||
uid_t userId = getuid();
|
uid_t userId = getuid();
|
||||||
m_gdbServerIP = "127.0.0.1";
|
m_gdbServerIP = "127.0.0.1";
|
||||||
@@ -195,9 +196,8 @@ static QString usage()
|
|||||||
.arg(QCoreApplication::arguments().at(0));
|
.arg(QCoreApplication::arguments().at(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Runner::parseArguments()
|
void Runner::parseArguments(const QStringList &args)
|
||||||
{
|
{
|
||||||
QStringList args = QCoreApplication::arguments();
|
|
||||||
for (int i = 1; i < args.size(); ++i) {
|
for (int i = 1; i < args.size(); ++i) {
|
||||||
const QString arg = args.at(i);
|
const QString arg = args.at(i);
|
||||||
if (arg.startsWith('-')) {
|
if (arg.startsWith('-')) {
|
||||||
@@ -210,7 +210,7 @@ void Runner::parseArguments()
|
|||||||
} else if (arg == "-au") {
|
} else if (arg == "-au") {
|
||||||
m_adapterOptions.append("-u");
|
m_adapterOptions.append("-u");
|
||||||
} else if (arg == "-w") {
|
} else if (arg == "-w") {
|
||||||
m_waitAdapter = 1;
|
m_waitForAdapter = true;
|
||||||
} else if (arg == "-tv") {
|
} else if (arg == "-tv") {
|
||||||
m_trkServerOptions.append("-v");
|
m_trkServerOptions.append("-v");
|
||||||
} else if (arg == "-tq") {
|
} else if (arg == "-tq") {
|
||||||
@@ -224,7 +224,7 @@ void Runner::parseArguments()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m_trkServerName = arg;
|
m_trkServerName = arg;
|
||||||
m_runTrkServer = 0;
|
m_runTrkServer = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,7 +272,7 @@ void Runner::launchAdapter()
|
|||||||
<< QDir::currentPath() + "/debug/adapter.exe";
|
<< QDir::currentPath() + "/debug/adapter.exe";
|
||||||
}
|
}
|
||||||
adapterArgs << m_adapterOptions;
|
adapterArgs << m_adapterOptions;
|
||||||
adapterArgs << "-s";
|
//adapterArgs << "-s";
|
||||||
adapterArgs << m_trkServerName << m_gdbServerIP + ':' + m_gdbServerPort;
|
adapterArgs << m_trkServerName << m_gdbServerIP + ':' + m_gdbServerPort;
|
||||||
|
|
||||||
sendOutput("### Starting " + adapterName + " " + adapterArgs.join(" "));
|
sendOutput("### Starting " + adapterName + " " + adapterArgs.join(" "));
|
||||||
@@ -282,7 +282,7 @@ void Runner::launchAdapter()
|
|||||||
//die ('Unable to launch adapter') if $adapterpid == -1;
|
//die ('Unable to launch adapter') if $adapterpid == -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if ($m_waitAdapter > 0) {
|
if (m_waitForAdapter) {
|
||||||
print '### kill -USR1 ',$adapterpid,"\n";
|
print '### kill -USR1 ',$adapterpid,"\n";
|
||||||
waitpid($adapterpid, 0);
|
waitpid($adapterpid, 0);
|
||||||
}
|
}
|
||||||
@@ -291,6 +291,7 @@ void Runner::launchAdapter()
|
|||||||
|
|
||||||
void Runner::writeGdbInit()
|
void Runner::writeGdbInit()
|
||||||
{
|
{
|
||||||
|
qDebug() << "WRITE GDBINIT";
|
||||||
QString gdbInitFile = QDir::currentPath() + "/.gdbinit";
|
QString gdbInitFile = QDir::currentPath() + "/.gdbinit";
|
||||||
QFile file(gdbInitFile);
|
QFile file(gdbInitFile);
|
||||||
if (!file.open(QIODevice::ReadWrite)) {
|
if (!file.open(QIODevice::ReadWrite)) {
|
||||||
@@ -350,6 +351,18 @@ void Runner::run()
|
|||||||
writeGdbInit();
|
writeGdbInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Runner::runRfcomm()
|
||||||
|
{
|
||||||
|
qDebug() << "RUNNING RFCCOMM";
|
||||||
|
QProcess *proc = new QProcess;
|
||||||
|
connectProcess(proc);
|
||||||
|
proc->start("rfcomm listen /dev/rfcomm0 1");
|
||||||
|
proc->waitForStarted();
|
||||||
|
qDebug() << "STARTED";
|
||||||
|
proc->write("\x90\x01\x00\x05\x7e\x00\x00\xff\x7e");
|
||||||
|
qDebug() << "WRITTEN";
|
||||||
|
proc->waitForFinished();
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
@@ -393,11 +406,19 @@ void RunnerGui::handleOutput(const QString &senderName, const QString &data)
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
#if 1
|
||||||
|
QStringList args = QCoreApplication::arguments();
|
||||||
|
qDebug() << "ARGS: " << args;
|
||||||
|
#else
|
||||||
|
// Important options: -w wait for adapter, -af omit serial frame.
|
||||||
|
QStringList args = QStringList() << "-w" << "-af" << "COM5";
|
||||||
|
#endif
|
||||||
Runner runner;
|
Runner runner;
|
||||||
runner.parseArguments();
|
runner.parseArguments(args);
|
||||||
RunnerGui gui(&runner);
|
RunnerGui gui(&runner);
|
||||||
gui.show();
|
gui.show();
|
||||||
QTimer::singleShot(0, &runner, SLOT(run()));
|
QTimer::singleShot(0, &runner, SLOT(run()));
|
||||||
|
//QTimer::singleShot(0, &runner, SLOT(runRfcomm()));
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user