forked from qt-creator/qt-creator
Android: Simplify gdbserver upload logic a bit
Change-Id: I3b1950633ef99f1ead01edc864add8bb7f8a2031 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -517,30 +517,24 @@ void AndroidRunnerWorker::asyncStartHelper()
|
|||||||
|
|
||||||
uploadDebugServer(debugServerFile);
|
uploadDebugServer(debugServerFile);
|
||||||
} else {
|
} else {
|
||||||
QString debugServerExecutable = "gdbserver";
|
if (packageFileExists("./lib/gdbserver")) {
|
||||||
QString debugServerPrefix = "./lib/";
|
debugServerFile = "./lib/gdbserver";
|
||||||
auto findGdbServer = [this, &debugServerExecutable, debugServerPrefix](const QString& gdbEx) {
|
qCDebug(androidRunWorkerLog) << "Found GDB server " + debugServerFile;
|
||||||
if (!packageFileExists(debugServerPrefix + gdbEx))
|
runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"});
|
||||||
return false;
|
} else if (packageFileExists("./lib/libgdbserver.so")) {
|
||||||
debugServerExecutable = gdbEx;
|
debugServerFile = "./lib/libgdbserver.so";
|
||||||
return true;
|
qCDebug(androidRunWorkerLog) << "Found GDB server " + debugServerFile;
|
||||||
};
|
runAdb({"shell", "run-as", m_packageName, "killall", "libgdbserver.so"});
|
||||||
|
} else {
|
||||||
if (!findGdbServer("gdbserver") && !findGdbServer("libgdbserver.so")) {
|
|
||||||
// Armv8. symlink lib is not available.
|
// Armv8. symlink lib is not available.
|
||||||
|
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", debugServerExecutable});
|
runAdb({"shell", "run-as", m_packageName, "killall", "gdbserver"});
|
||||||
if (!m_debugServerPath.isEmpty() && uploadDebugServer("./gdbserver")) {
|
if (m_debugServerPath.isEmpty() || !uploadDebugServer("./gdbserver")) {
|
||||||
debugServerPrefix = "./";
|
|
||||||
} else {
|
|
||||||
emit remoteProcessFinished(tr("Cannot find or copy C++ debug server."));
|
emit remoteProcessFinished(tr("Cannot find or copy C++ debug server."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
qCDebug(androidRunWorkerLog) << "Found GDB server under ./lib";
|
|
||||||
runAdb({"shell", "run-as", m_packageName, "killall", debugServerExecutable});
|
|
||||||
}
|
}
|
||||||
debugServerFile = debugServerPrefix + debugServerExecutable;
|
|
||||||
}
|
}
|
||||||
QString debuggerServerErr;
|
QString debuggerServerErr;
|
||||||
if (!startDebuggerServer(packageDir, debugServerFile, &debuggerServerErr)) {
|
if (!startDebuggerServer(packageDir, debugServerFile, &debuggerServerErr)) {
|
||||||
|
Reference in New Issue
Block a user