summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-03-18 17:12:53 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-03-18 17:12:53 -0700
commit3152243f4eaaf95d1bfb869e40290c890f87c877 (patch)
tree80d84549c3c38192520668a143b6b79ded68ce5f /platform
parent1593b962ed30c866db10e1720142bfb67a3c49c1 (diff)
downloadqtlocation-mapboxgl-3152243f4eaaf95d1bfb869e40290c890f87c877.tar.gz
[android] Add script for NDK debugging
Diffstat (limited to 'platform')
-rwxr-xr-xplatform/android/scripts/debug.sh46
1 files changed, 46 insertions, 0 deletions
diff --git a/platform/android/scripts/debug.sh b/platform/android/scripts/debug.sh
new file mode 100755
index 0000000000..b2178db216
--- /dev/null
+++ b/platform/android/scripts/debug.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+
+# Automation of https://github.com/mapbox/mapbox-gl-native/wiki/Android-debugging-with-remote-GDB
+
+export MASON_DIR="`pwd`/.mason"
+export PATH="${MASON_DIR}:${PATH}"
+
+export MASON_ANDROID_ABI=x86
+export MASON_ANDROID_ARCH=x86
+export MASON_ANDROID_PLATFORM=9
+export MASON_NDK_PACKAGE_VERSION=${MASON_ANDROID_ARCH}-${MASON_ANDROID_PLATFORM}-r10e
+
+if [[ $1 == '--prepare' ]]; then
+ mkdir -p ~/.android/debugging/{vendor,system}_lib
+ adb pull /system/lib ~/.android/debugging/system_lib
+ adb pull /vendor/lib ~/.android/debugging/vendor_lib
+ adb pull /system/bin/app_process ~/.android/debugging
+ adb pull /system/bin/app_process32 ~/.android/debugging
+ adb pull /system/bin/linker ~/.android/debugging
+
+ if [[ ${MASON_ANDROID_ABI} == 'x86_64' || ${MASON_ANDROID_ABI} == 'mips64' ]]; then
+ adb pull /system/bin/app_process64 ~/.android/debugging
+ adb pull /system/bin/linker64 ~/.android/debugging
+ fi
+
+ cp `mason prefix android-ndk ${MASON_NDK_PACKAGE_VERSION}`/prebuilt/android-${MASON_ANDROID_ABI}/gdbserver/gdbserver \
+ platform/android/MapboxGLAndroidSDK/src/main/jniLibs/${MASON_ANDROID_ABI}/gdbserver.so
+fi
+
+adb install -rtdg platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug.apk
+adb shell am start -n "com.mapbox.mapboxsdk.testapp/com.mapbox.mapboxsdk.testapp.MainActivity" \
+ -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
+
+adb forward tcp:5039 tcp:5039
+adb shell run-as com.mapbox.mapboxsdk.testapp '/data/data/com.mapbox.mapboxsdk.testapp/lib/gdbserver.so \
+ --attach :5039 `pgrep com.mapbox.mapboxsdk.testapp`' &
+
+export MASON_PLATFORM=android
+export PATH=`mason env PATH`
+`mason env MASON_ANDROID_TOOLCHAIN`-gdb \
+ -ex "target remote :5039" \
+ -ex "set solib-search-path ~/.android/debugging:~/.android/debugging/system_lib:~/.android/debugging/vendor_lib:~/.android/debugging/vendor_lib/egl:./build/android-${MASON_ANDROID_ABI}/Debug/lib.target/"
+