diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-03-18 17:12:53 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-03-18 17:12:53 -0700 |
commit | 3152243f4eaaf95d1bfb869e40290c890f87c877 (patch) | |
tree | 80d84549c3c38192520668a143b6b79ded68ce5f /platform | |
parent | 1593b962ed30c866db10e1720142bfb67a3c49c1 (diff) | |
download | qtlocation-mapboxgl-3152243f4eaaf95d1bfb869e40290c890f87c877.tar.gz |
[android] Add script for NDK debugging
Diffstat (limited to 'platform')
-rwxr-xr-x | platform/android/scripts/debug.sh | 46 |
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/" + |