forked from qt-creator/qt-creator
RemoteLinux: switch to extended-remote connection
Change-Id: If282a037e5b26f81859aaad8b407d644aa8b5c1c Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -295,7 +295,6 @@ void GdbRemoteServerEngine::handleTargetExtendedRemote(const GdbResponse &respon
|
||||
{
|
||||
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
|
||||
if (response.resultClass == GdbResultDone) {
|
||||
// gdb server will stop the remote application itself.
|
||||
showMessage(_("ATTACHED TO GDB SERVER STARTED"));
|
||||
showMessage(msgAttachedToStoppedInferior(), StatusBar);
|
||||
QString postAttachCommands = debuggerCore()->stringSetting(GdbPostAttachCommands);
|
||||
@@ -303,7 +302,13 @@ void GdbRemoteServerEngine::handleTargetExtendedRemote(const GdbResponse &respon
|
||||
foreach (const QString &cmd, postAttachCommands.split(QLatin1Char('\n')))
|
||||
postCommand(cmd.toLatin1());
|
||||
}
|
||||
postCommand("attach " + QByteArray::number(m_targetPid), CB(handleTargetExtendedAttach));
|
||||
if (m_targetPid > 0) { // attach to pid if valid
|
||||
// gdb server will stop the remote application itself.
|
||||
postCommand("attach " + QByteArray::number(m_targetPid), CB(handleTargetExtendedAttach));
|
||||
} else {
|
||||
postCommand("-gdb-set remote exec-file " + startParameters().remoteExecutable.toLatin1(),
|
||||
CB(handleTargetExtendedAttach));
|
||||
}
|
||||
} else {
|
||||
QString msg = msgConnectRemoteServerFailed(
|
||||
QString::fromLocal8Bit(response.data["msg"].data()));
|
||||
|
||||
@@ -60,6 +60,7 @@ public:
|
||||
: engine(engine),
|
||||
qmlDebugging(runConfig->extraAspect<Debugger::DebuggerRunConfigurationAspect>()->useQmlDebugger()),
|
||||
cppDebugging(runConfig->extraAspect<Debugger::DebuggerRunConfigurationAspect>()->useCppDebugger()),
|
||||
target(DeviceKitInformation::device(runConfig->target()->kit())->sshParameters().host.toLatin1()),
|
||||
gdbServerPort(-1), qmlPort(-1)
|
||||
{
|
||||
}
|
||||
@@ -68,6 +69,7 @@ public:
|
||||
bool qmlDebugging;
|
||||
bool cppDebugging;
|
||||
QByteArray gdbserverOutput;
|
||||
QByteArray target;
|
||||
int gdbServerPort;
|
||||
int qmlPort;
|
||||
};
|
||||
@@ -175,8 +177,9 @@ void LinuxDeviceDebugSupport::startExecution()
|
||||
command = device()->debugServerPath();
|
||||
if (command.isEmpty())
|
||||
command = QLatin1String("gdbserver");
|
||||
args.prepend(remoteFilePath());
|
||||
args.prepend(QString::fromLatin1(":%1").arg(d->gdbServerPort));
|
||||
args.prepend(QString::fromLatin1("--multi"));
|
||||
args.prepend(QString::fromLatin1("--once"));
|
||||
}
|
||||
|
||||
connect(runner, SIGNAL(finished(bool)), SLOT(handleAppRunnerFinished(bool)));
|
||||
@@ -260,6 +263,8 @@ void LinuxDeviceDebugSupport::handleAdapterSetupFailed(const QString &error)
|
||||
void LinuxDeviceDebugSupport::handleAdapterSetupDone()
|
||||
{
|
||||
AbstractRemoteLinuxRunSupport::handleAdapterSetupDone();
|
||||
QByteArray remote = d->target + ':' + QByteArray::number(d->gdbServerPort);
|
||||
d->engine->notifyEngineRemoteServerRunning(remote, -1);
|
||||
d->engine->notifyEngineRemoteSetupDone(d->gdbServerPort, d->qmlPort);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user