forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -48,6 +48,7 @@
|
|||||||
#include <utils/url.h>
|
#include <utils/url.h>
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
|
|
||||||
|
#include <QFileInfo>
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
#include <QTcpServer>
|
#include <QTcpServer>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
@@ -341,11 +342,11 @@ bool AndroidRunnerWorker::uploadDebugServer(const QString &debugServerFileName)
|
|||||||
|
|
||||||
// Copy gdbserver from temp location to app directory
|
// Copy gdbserver from temp location to app directory
|
||||||
if (!runAdb({"shell", "run-as", m_packageName, "cp" , *tempGdbServerPath, debugServerFileName})) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
QTC_ASSERT(runAdb({"shell", "run-as", m_packageName, "chmod", "777", debugServerFileName}),
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -503,6 +504,15 @@ void AndroidRunnerWorker::asyncStartHelper()
|
|||||||
QString debugServerFile;
|
QString debugServerFile;
|
||||||
if (m_useLldb) {
|
if (m_useLldb) {
|
||||||
debugServerFile = "./lldb-server";
|
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);
|
uploadDebugServer(debugServerFile);
|
||||||
} else {
|
} else {
|
||||||
QString debugServerExecutable = "gdbserver";
|
QString debugServerExecutable = "gdbserver";
|
||||||
|
Reference in New Issue
Block a user