debugger: work in progress (new trk runner)

Basic TRK/adapter communication now works using "rfcomm listen /dev/rfcomm0 1
&& ./adapter -f -v /dev/rfcomm0 127.0.0.1:3222 && ./cs-gdb"

This is wrapped up in a "runner" binary
This commit is contained in:
hjk
2009-09-03 09:26:27 +02:00
parent 0915d3e206
commit 809117892c
4 changed files with 1465 additions and 236 deletions

View File

@@ -37,7 +37,8 @@ rfcomm listen /dev/rfcomm0 1 $PWD/trklauncher -v -f {}
#The same with the debug adapter:
rfcomm listen /dev/rfcomm0 1 $PWD/run.pl -af -av -w {}
rfcomm listen /dev/rfcomm0 1 $PWD/run.pl -af -av -w {}
rfcomm listen /dev/rfcomm0 1 $PWD/runner -af -av -w {}
#Important options: -w wait for adapter, -af omit serial frame.

View File

@@ -115,7 +115,9 @@ public:
void setRegisterEndianness(Endianness r) { m_registerEndianness = r; }
void setUseSocket(bool s) { m_useSocket = s; }
void setBufferedMemoryRead(bool b) { qDebug() << "Buffered=" << b; m_bufferedMemoryRead = b; }
bool startServer();
public slots:
void startServer();
private slots:
void handleResult(const trk::TrkResult &data);
@@ -141,7 +143,7 @@ private:
// kill process and breakpoints
void cleanUp();
void handleCpuType(const TrkResult &result);
void handleCpuType(const TrkResult &result);
void handleCreateProcess(const TrkResult &result);
void handleClearBreakpoint(const TrkResult &result);
void handleSignalContinue(const TrkResult &result);
@@ -247,12 +249,14 @@ void Adapter::setGdbServerName(const QString &name)
}
}
bool Adapter::startServer()
void Adapter::startServer()
{
QString errorMessage;
if (!openTrkPort(m_trkServerName, &errorMessage)) {
logMessage(errorMessage, true);
return false;
logMessage("LOOPING");
QTimer::singleShot(1000, this, SLOT(startServer()));
return;
}
sendTrkInitialPing();
@@ -271,7 +275,8 @@ bool Adapter::startServer()
logMessage(QString("Unable to start the gdb server at %1:%2: %3.")
.arg(m_gdbServerName).arg(m_gdbServerPort)
.arg(m_gdbServer.errorString()), true);
return false;
QCoreApplication::exit(5);
return;
}
logMessage(QString("Gdb server running on %1:%2.\nRegister endianness: %3\nRun arm-gdb now.")
@@ -279,7 +284,6 @@ bool Adapter::startServer()
connect(&m_gdbServer, SIGNAL(newConnection()),
this, SLOT(handleGdbConnection()));
return true;
}
void Adapter::logMessage(const QString &msg, bool force)
@@ -1521,9 +1525,8 @@ int main(int argc, char *argv[])
adapter.setRegisterEndianness(options.registerEndianness);
adapter.setUseSocket(options.useSocket);
adapter.setSerialFrame(options.serialFrame);
if (adapter.startServer())
return app.exec();
return 4;
QTimer::singleShot(0, &adapter, SLOT(startServer()));
return app.exec();
}
#include "adapter.moc"

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,15 @@
TEMPLATE = app
QT += network
win32:CONFIG+=console
HEADERS +=
HEADERS += \
trkutils.h \
trkdevice.h \
SOURCES += \
runner.cpp \
trkutils.cpp \
trkdevice.cpp \