forked from qt-creator/qt-creator
Debugger: Use CommandLine to set up debugger server
To allow more complex actions in the command line, like parsing $SSH_CLIENT. Change-Id: Ifc48a74f1fe4e42cd7ceddfd3c308bd1636212a7 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -1034,11 +1034,12 @@ DebugServerRunner::DebugServerRunner(RunControl *runControl, DebugServerPortsGat
|
|||||||
|
|
||||||
CommandLine cmd;
|
CommandLine cmd;
|
||||||
|
|
||||||
QStringList args = ProcessArgs::splitArgs(commandLine().arguments(), OsTypeLinux);
|
|
||||||
if (isQmlDebugging) {
|
if (isQmlDebugging) {
|
||||||
args.prepend(QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlDebuggerServices,
|
cmd.addArg(QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlDebuggerServices,
|
||||||
portsGatherer->qmlServer()));
|
portsGatherer->qmlServer()));
|
||||||
}
|
}
|
||||||
|
cmd.addArgs(commandLine().arguments(), CommandLine::Raw);
|
||||||
|
|
||||||
if (isQmlDebugging && !isCppDebugging) {
|
if (isQmlDebugging && !isCppDebugging) {
|
||||||
cmd.setExecutable(commandLine().executable()); // FIXME: Case should not happen?
|
cmd.setExecutable(commandLine().executable()); // FIXME: Case should not happen?
|
||||||
} else {
|
} else {
|
||||||
@@ -1064,28 +1065,27 @@ DebugServerRunner::DebugServerRunner(RunControl *runControl, DebugServerPortsGat
|
|||||||
cmd.setExecutable(runControl->device()->filePath("gdbserver"));
|
cmd.setExecutable(runControl->device()->filePath("gdbserver"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
args.clear();
|
cmd.setArguments({});
|
||||||
if (cmd.executable().baseName().contains("lldb-server")) {
|
if (cmd.executable().baseName().contains("lldb-server")) {
|
||||||
args.append("platform");
|
cmd.addArg("platform");
|
||||||
args.append("--listen");
|
cmd.addArg("--listen");
|
||||||
args.append(QString("*:%1").arg(portsGatherer->gdbServer().port()));
|
cmd.addArg(QString("*:%1").arg(portsGatherer->gdbServer().port()));
|
||||||
args.append("--server");
|
cmd.addArg("--server");
|
||||||
} else if (cmd.executable().baseName() == "debugserver") {
|
} else if (cmd.executable().baseName() == "debugserver") {
|
||||||
args.append(QString("*:%1").arg(portsGatherer->gdbServer().port()));
|
cmd.addArg(QString("*:%1").arg(portsGatherer->gdbServer().port()));
|
||||||
args.append("--attach");
|
cmd.addArg("--attach");
|
||||||
args.append(QString::number(m_pid.pid()));
|
cmd.addArg(QString::number(m_pid.pid()));
|
||||||
} else {
|
} else {
|
||||||
// Something resembling gdbserver
|
// Something resembling gdbserver
|
||||||
if (m_useMulti)
|
if (m_useMulti)
|
||||||
args.append("--multi");
|
cmd.addArg("--multi");
|
||||||
if (m_pid.isValid())
|
if (m_pid.isValid())
|
||||||
args.append("--attach");
|
cmd.addArg("--attach");
|
||||||
args.append(QString(":%1").arg(portsGatherer->gdbServer().port()));
|
cmd.addArg(QString(":%1").arg(portsGatherer->gdbServer().port()));
|
||||||
if (m_pid.isValid())
|
if (m_pid.isValid())
|
||||||
args.append(QString::number(m_pid.pid()));
|
cmd.addArg(QString::number(m_pid.pid()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmd.setArguments(ProcessArgs::joinArgs(args, OsTypeLinux));
|
|
||||||
|
|
||||||
setCommandLine(cmd);
|
setCommandLine(cmd);
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user