From 4486f78e49bd59c74fd7f208fd4f954d90c5272c Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 28 Apr 2020 12:08:22 +0200 Subject: [PATCH] Android: Check existence of debug server binary before upload Debugging will fail later, better catch the problem early. Change-Id: I973ff346db718e2050f5aafab068717d4e723fa6 Reviewed-by: Assam Boudjelthia --- src/plugins/android/androidrunnerworker.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp index 34e0ee01e4d..cc5df2ff671 100644 --- a/src/plugins/android/androidrunnerworker.cpp +++ b/src/plugins/android/androidrunnerworker.cpp @@ -48,6 +48,7 @@ #include #include +#include #include #include #include @@ -341,11 +342,11 @@ bool AndroidRunnerWorker::uploadDebugServer(const QString &debugServerFileName) // Copy gdbserver from temp location to app directory if (!runAdb({"shell", "run-as", m_packageName, "cp" , *tempGdbServerPath, debugServerFileName})) { - qCDebug(androidRunWorkerLog) << "Gdbserver copy from temp directory failed"; + qCDebug(androidRunWorkerLog) << "Debug server copy from temp directory failed"; return false; } QTC_ASSERT(runAdb({"shell", "run-as", m_packageName, "chmod", "777", debugServerFileName}), - qCDebug(androidRunWorkerLog) << "Gdbserver chmod 777 failed."); + qCDebug(androidRunWorkerLog) << "Debug server chmod 777 failed."); return true; } @@ -503,6 +504,15 @@ void AndroidRunnerWorker::asyncStartHelper() 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 { QString debugServerExecutable = "gdbserver";