summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kdab.com>2017-04-21 16:34:58 +0300
committerBogDan Vatra <bogdan@kdab.com>2017-05-02 09:28:17 +0000
commit38025d875480fee915dad83760629326d6e1fad0 (patch)
treebf8c0e02f1a6a596cf6957e2d628e0232d6f5b30
parent28bf2c8fad3b103995794b3ac95457fe16ee461f (diff)
Use gdbserver command from a safe place
Removed support for old QtCreator versions (pre 3.5) Change-Id: I5ec0e965c09c8a76810144b133af3395e32fddfa Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit c76918b2b21c25d927dca8f8911349a15f22a1e2)
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java53
1 files changed, 11 insertions, 42 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
index 21a9d498df..72caf71ae7 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2014 BogDan Vatra <bogdan@kde.org>
+** Copyright (C) 2017 BogDan Vatra <bogdan@kde.org>
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
@@ -40,6 +40,7 @@ import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.AssetManager;
import android.content.res.Configuration;
import android.graphics.drawable.ColorDrawable;
import android.graphics.Rect;
@@ -628,58 +629,26 @@ public class QtActivityDelegate
{
// start application
try {
- // FIXME turn on debuggable check
- // if the applications is debuggable and it has a native debug request
+
Bundle extras = m_activity.getIntent().getExtras();
if (extras != null) {
-
if ( /*(ai.flags&ApplicationInfo.FLAG_DEBUGGABLE) != 0
- &&*/ extras.containsKey("native_debug")
- && extras.getString("native_debug").equals("true")) {
+ &&*/ extras.containsKey("debug_ping")
+ && extras.getString("debug_ping").equals("true")) {
try {
+ final String dc = "--Added-by-androiddeployqt--/debugger.command";
+ String debuggerCommand =
+ new BufferedReader(new InputStreamReader(m_activity.getAssets().open(dc))).readLine();
String packagePath =
m_activity.getPackageManager().getApplicationInfo(m_activity.getPackageName(),
PackageManager.GET_CONFIGURATIONS).dataDir + "/";
- String gdbserverPath =
- extras.containsKey("gdbserver_path")
- ? extras.getString("gdbserver_path")
- : packagePath+"lib/gdbserver ";
-
- String socket =
- extras.containsKey("gdbserver_socket")
- ? extras.getString("gdbserver_socket")
- : "+debug-socket";
-
- if (!(new File(gdbserverPath)).exists())
- gdbserverPath += ".so";
-
- // start debugger
- m_debuggerProcess = Runtime.getRuntime().exec(gdbserverPath
- + socket
- + " --attach "
- + android.os.Process.myPid(),
- null,
- new File(packagePath));
- } catch (IOException ioe) {
- Log.e(QtNative.QtTAG,"Can't start debugger" + ioe.getMessage());
- } catch (SecurityException se) {
- Log.e(QtNative.QtTAG,"Can't start debugger" + se.getMessage());
- } catch (NameNotFoundException e) {
- Log.e(QtNative.QtTAG,"Can't start debugger" + e.getMessage());
- }
- }
-
- if ( /*(ai.flags&ApplicationInfo.FLAG_DEBUGGABLE) != 0
- &&*/ extras.containsKey("debug_ping")
- && extras.getString("debug_ping").equals("true")) {
- try {
debugLog("extra parameters: " + extras);
String packageName = m_activity.getPackageName();
String pingFile = extras.getString("ping_file");
String pongFile = extras.getString("pong_file");
String gdbserverSocket = extras.getString("gdbserver_socket");
- String gdbserverCommand = extras.getString("gdbserver_command");
+ String gdbserverCommand = packagePath + debuggerCommand + gdbserverSocket;
String pingSocket = extras.getString("ping_socket");
boolean usePing = pingFile != null;
boolean usePong = pongFile != null;
@@ -808,9 +777,9 @@ public class QtActivityDelegate
}
} catch (IOException ioe) {
- Log.e(QtNative.QtTAG,"Can't start debugger" + ioe.getMessage());
+ ioe.printStackTrace();
} catch (SecurityException se) {
- Log.e(QtNative.QtTAG,"Can't start debugger" + se.getMessage());
+ se.printStackTrace();
}
}