From d54c61b4bd700aee7428c218f472259d14e84628 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 18 May 2020 08:46:17 +0200 Subject: [PATCH] Android: Simplify gdbserver upload logic a bit Change-Id: I3b1950633ef99f1ead01edc864add8bb7f8a2031 Reviewed-by: David Schulz --- src/plugins/android/androidrunnerworker.cpp | 30 +++++++++------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp index a25afb77c24..79801fdbf01 100644 --- a/src/plugins/android/androidrunnerworker.cpp +++ b/src/plugins/android/androidrunnerworker.cpp @@ -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)) {