From 4fb8bb9f064af6ebcebb556278820b003f96bb10 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 18 May 2020 10:13:46 +0200 Subject: [PATCH] Android: Consolidate error handling for not found debug servers Change-Id: I55d0ef38cf250536e71b6828e762f51221162830 Reviewed-by: David Schulz --- src/plugins/android/androidrunnerworker.cpp | 24 +++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp index 79801fdbf01..9b30413e8e6 100644 --- a/src/plugins/android/androidrunnerworker.cpp +++ b/src/plugins/android/androidrunnerworker.cpp @@ -503,18 +503,20 @@ void AndroidRunnerWorker::asyncStartHelper() // e.g. on Android 8 with NDK 10e runAdb({"shell", "run-as", m_packageName, "chmod", "a+x", packageDir.trimmed()}); + if (!QFileInfo::exists(m_debugServerPath)) { + QString msg = tr("Cannot find C++ debug server in NDK installation"); + if (m_useLldb) { + msg += "\n" + tr("The lldb-server binary has not been found. Maybe " + "sdk_definitions.json does not contain 'lldb;x.y' as " + "sdk_essential_package or LLDB was not installed."); + } + emit remoteProcessFinished(msg); + return; + } + QString debugServerFile; if (m_useLldb) { debugServerFile = "./lldb-server"; - // Check lldb-server has been packaged - if (!QFileInfo::exists(m_debugServerPath)) { - qCDebug(androidRunWorkerLog) << "The lldb-server binary has not been " - "packaged. Maybe sdk_definitions.json does not contain 'lldb;x.y' as " - "sdk_essential_package or LLDB was not installed"; - emit remoteProcessFinished(tr("lldb-server not found in package.")); - return; - } - uploadDebugServer(debugServerFile); } else { if (packageFileExists("./lib/gdbserver")) { @@ -530,8 +532,8 @@ void AndroidRunnerWorker::asyncStartHelper() debugServerFile = "./gdbserver"; // Kill the previous instances of gdbserver. Do this before copying the gdbserver. runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"}); - if (m_debugServerPath.isEmpty() || !uploadDebugServer("./gdbserver")) { - emit remoteProcessFinished(tr("Cannot find or copy C++ debug server.")); + if (!uploadDebugServer("./gdbserver")) { + emit remoteProcessFinished(tr("Cannot copy C++ debug server.")); return; } }