forked from qt-creator/qt-creator
Android: Move part of start setup into AndroidDebugSupport's c'tor
Task-number: QTCREATORBUG-29168 Change-Id: I948c52e8fbd197591ca19e15b928f6a26642ceac Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -89,24 +89,13 @@ public:
|
||||
setLldbPlatform("remote-android");
|
||||
m_runner = new AndroidRunner(runControl);
|
||||
addStartDependency(m_runner);
|
||||
}
|
||||
|
||||
void start() override;
|
||||
|
||||
private:
|
||||
AndroidRunner *m_runner = nullptr;
|
||||
};
|
||||
|
||||
void AndroidDebugSupport::start()
|
||||
{
|
||||
Target *target = runControl()->target();
|
||||
Target *target = runControl->target();
|
||||
Kit *kit = target->kit();
|
||||
|
||||
setStartMode(AttachToRemoteServer);
|
||||
const QString packageName = Internal::packageName(target);
|
||||
setRunControlName(packageName);
|
||||
setUseContinueInsteadOfRun(true);
|
||||
setAttachPid(m_runner->pid());
|
||||
|
||||
QtSupport::QtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(kit);
|
||||
if (!HostOsInfo::isWindowsHost()
|
||||
@@ -117,7 +106,7 @@ void AndroidDebugSupport::start()
|
||||
|
||||
if (isCppDebugging()) {
|
||||
qCDebug(androidDebugSupportLog) << "C++ debugging enabled";
|
||||
const ProjectNode *node = target->project()->findNodeForBuildKey(runControl()->buildKey());
|
||||
const ProjectNode *node = target->project()->findNodeForBuildKey(runControl->buildKey());
|
||||
FilePaths solibSearchPath = getSoLibSearchPath(node);
|
||||
if (qtVersion)
|
||||
solibSearchPath.append(qtVersion->qtSoPaths());
|
||||
@@ -142,23 +131,6 @@ void AndroidDebugSupport::start()
|
||||
QString devicePreferredAbi = apkDevicePreferredAbi(target);
|
||||
setAbi(androidAbi2Abi(devicePreferredAbi));
|
||||
|
||||
if (cppEngineType() == LldbEngineType) {
|
||||
QString deviceSerialNumber = Internal::deviceSerialNumber(target);
|
||||
const int colonPos = deviceSerialNumber.indexOf(QLatin1Char(':'));
|
||||
if (colonPos > 0) {
|
||||
// When wireless debugging is used then the device serial number will include a port number
|
||||
// The port number must be removed to form a valid hostname
|
||||
deviceSerialNumber.truncate(colonPos);
|
||||
}
|
||||
setRemoteChannel("adb://" + deviceSerialNumber,
|
||||
m_runner->debugServerPort().number());
|
||||
} else {
|
||||
QUrl debugServer;
|
||||
debugServer.setPort(m_runner->debugServerPort().number());
|
||||
debugServer.setHost(QHostAddress(QHostAddress::LocalHost).toString());
|
||||
setRemoteChannel(debugServer);
|
||||
}
|
||||
|
||||
auto qt = static_cast<AndroidQtVersion *>(qtVersion);
|
||||
const int minimumNdk = qt ? qt->minimumNDK() : 0;
|
||||
|
||||
@@ -178,14 +150,45 @@ void AndroidDebugSupport::start()
|
||||
if (isQmlDebugging()) {
|
||||
qCDebug(androidDebugSupportLog) << "QML debugging enabled. QML server: "
|
||||
<< qmlChannel().toDisplayString();
|
||||
setQmlServer(qmlChannel());
|
||||
//TODO: Not sure if these are the right paths.
|
||||
if (qtVersion)
|
||||
addSearchDirectory(qtVersion->qmlPath());
|
||||
}
|
||||
|
||||
connect(this, &RunWorker::started, this, [this, packageName] {
|
||||
qCDebug(androidDebugSupportLog) << "Starting debugger - package name: " << packageName
|
||||
<< ", PID: " << m_runner->pid().pid();
|
||||
});
|
||||
}
|
||||
|
||||
void start() override;
|
||||
|
||||
private:
|
||||
AndroidRunner *m_runner = nullptr;
|
||||
};
|
||||
|
||||
void AndroidDebugSupport::start()
|
||||
{
|
||||
setAttachPid(m_runner->pid());
|
||||
if (isCppDebugging()) {
|
||||
if (cppEngineType() == LldbEngineType) {
|
||||
QString deviceSerialNumber = Internal::deviceSerialNumber(runControl()->target());
|
||||
const int colonPos = deviceSerialNumber.indexOf(QLatin1Char(':'));
|
||||
if (colonPos > 0) {
|
||||
// When wireless debugging is used then the device serial number will include a port number
|
||||
// The port number must be removed to form a valid hostname
|
||||
deviceSerialNumber.truncate(colonPos);
|
||||
}
|
||||
setRemoteChannel("adb://" + deviceSerialNumber,
|
||||
m_runner->debugServerPort().number());
|
||||
} else {
|
||||
QUrl debugServer;
|
||||
debugServer.setPort(m_runner->debugServerPort().number());
|
||||
debugServer.setHost(QHostAddress(QHostAddress::LocalHost).toString());
|
||||
setRemoteChannel(debugServer);
|
||||
}
|
||||
}
|
||||
if (isQmlDebugging())
|
||||
setQmlServer(qmlChannel());
|
||||
DebuggerRunTool::start();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user