Android: Simplify gdbserver upload logic a bit

Change-Id: I3b1950633ef99f1ead01edc864add8bb7f8a2031
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2020-05-18 08:46:17 +02:00
parent b7382bcf2e
commit d54c61b4bd

View File

@@ -517,30 +517,24 @@ void AndroidRunnerWorker::asyncStartHelper()
uploadDebugServer(debugServerFile);
} else {
QString debugServerExecutable = "gdbserver";
QString debugServerPrefix = "./lib/";
auto findGdbServer = [this, &debugServerExecutable, debugServerPrefix](const QString& gdbEx) {
if (!packageFileExists(debugServerPrefix + gdbEx))
return false;
debugServerExecutable = gdbEx;
return true;
};
if (!findGdbServer("gdbserver") && !findGdbServer("libgdbserver.so")) {
if (packageFileExists("./lib/gdbserver")) {
debugServerFile = "./lib/gdbserver";
qCDebug(androidRunWorkerLog) << "Found GDB server " + debugServerFile;
runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"});
} else if (packageFileExists("./lib/libgdbserver.so")) {
debugServerFile = "./lib/libgdbserver.so";
qCDebug(androidRunWorkerLog) << "Found GDB server " + debugServerFile;
runAdb({"shell", "run-as", m_packageName, "killall", "libgdbserver.so"});
} else {
// Armv8. symlink lib is not available.
debugServerFile = "./gdbserver";
// Kill the previous instances of gdbserver. Do this before copying the gdbserver.
runAdb({"shell", "run-as", m_packageName, "killall", debugServerExecutable});
if (!m_debugServerPath.isEmpty() && uploadDebugServer("./gdbserver")) {
debugServerPrefix = "./";
} else {
runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"});
if (m_debugServerPath.isEmpty() || !uploadDebugServer("./gdbserver")) {
emit remoteProcessFinished(tr("Cannot find or copy C++ debug server."));
return;
}
} else {
qCDebug(androidRunWorkerLog) << "Found GDB server under ./lib";
runAdb({"shell", "run-as", m_packageName, "killall", debugServerExecutable});
}
debugServerFile = debugServerPrefix + debugServerExecutable;
}
QString debuggerServerErr;
if (!startDebuggerServer(packageDir, debugServerFile, &debuggerServerErr)) {