aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androidrunnerworker.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-04-28 12:08:22 +0200
committerhjk <hjk@qt.io>2020-04-29 13:31:08 +0000
commit4486f78e49bd59c74fd7f208fd4f954d90c5272c (patch)
tree51c7ec157e93b10404619bd04b0121979cdf2929 /src/plugins/android/androidrunnerworker.cpp
parentb5d41b7ab22e316b4b1238bb3559608f7002dc13 (diff)
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 <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/plugins/android/androidrunnerworker.cpp')
-rw-r--r--src/plugins/android/androidrunnerworker.cpp14
1 files 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 <utils/url.h>
#include <utils/fileutils.h>
+#include <QFileInfo>
#include <QLoggingCategory>
#include <QTcpServer>
#include <QThread>
@@ -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";