Android: Consolidate error handling for not found debug servers

Change-Id: I55d0ef38cf250536e71b6828e762f51221162830
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2020-05-18 10:13:46 +02:00
parent 9fc2fda07e
commit 4fb8bb9f06

View File

@@ -503,18 +503,20 @@ void AndroidRunnerWorker::asyncStartHelper()
// e.g. on Android 8 with NDK 10e // e.g. on Android 8 with NDK 10e
runAdb({"shell", "run-as", m_packageName, "chmod", "a+x", packageDir.trimmed()}); runAdb({"shell", "run-as", m_packageName, "chmod", "a+x", packageDir.trimmed()});
QString debugServerFile;
if (m_useLldb) {
debugServerFile = "./lldb-server";
// Check lldb-server has been packaged
if (!QFileInfo::exists(m_debugServerPath)) { if (!QFileInfo::exists(m_debugServerPath)) {
qCDebug(androidRunWorkerLog) << "The lldb-server binary has not been " QString msg = tr("Cannot find C++ debug server in NDK installation");
"packaged. Maybe sdk_definitions.json does not contain 'lldb;x.y' as " if (m_useLldb) {
"sdk_essential_package or LLDB was not installed"; msg += "\n" + tr("The lldb-server binary has not been found. Maybe "
emit remoteProcessFinished(tr("lldb-server not found in package.")); "sdk_definitions.json does not contain 'lldb;x.y' as "
"sdk_essential_package or LLDB was not installed.");
}
emit remoteProcessFinished(msg);
return; return;
} }
QString debugServerFile;
if (m_useLldb) {
debugServerFile = "./lldb-server";
uploadDebugServer(debugServerFile); uploadDebugServer(debugServerFile);
} else { } else {
if (packageFileExists("./lib/gdbserver")) { if (packageFileExists("./lib/gdbserver")) {
@@ -530,8 +532,8 @@ void AndroidRunnerWorker::asyncStartHelper()
debugServerFile = "./gdbserver"; debugServerFile = "./gdbserver";
// Kill the previous instances of gdbserver. Do this before copying the gdbserver. // Kill the previous instances of gdbserver. Do this before copying the gdbserver.
runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"}); runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"});
if (m_debugServerPath.isEmpty() || !uploadDebugServer("./gdbserver")) { if (!uploadDebugServer("./gdbserver")) {
emit remoteProcessFinished(tr("Cannot find or copy C++ debug server.")); emit remoteProcessFinished(tr("Cannot copy C++ debug server."));
return; return;
} }
} }