55 lines
1.5 KiB
Bash
55 lines
1.5 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
# This script need the following modification in ANDROID_NDK in order to attach
|
||
|
# to the good :main pid
|
||
|
#--- a/prebuilt/linux-x86_64/bin/ndk-gdb.py
|
||
|
#+++ b/prebuilt/linux-x86_64/bin/ndk-gdb.py
|
||
|
#@@ -669,7 +669,7 @@
|
||
|
# log("Sleeping for {} seconds.".format(args.delay))
|
||
|
# time.sleep(args.delay)
|
||
|
#
|
||
|
#- pids = gdbrunner.get_pids(device, pkg_name)
|
||
|
#+ pids = gdbrunner.get_pids(device, pkg_name + ":main")
|
||
|
# if len(pids) == 0:
|
||
|
# error("Failed to find running process '{}'".format(pkg_name))
|
||
|
# if len(pids) > 1:
|
||
|
|
||
|
SCRIPT_PATH=$(dirname $0)
|
||
|
BUILD_PATH="`pwd`"
|
||
|
TMP_PATH="$BUILD_PATH/gdb"
|
||
|
NDK_GDB_ARGS="--force"
|
||
|
ANDROID_NDK=$1
|
||
|
|
||
|
if [ ! -f $ANDROID_NDK/source.properties ];then
|
||
|
echo "usage: $0 ANDROID_NDK"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ ! -f $BUILD_PATH/libmpd.so ];then
|
||
|
echo "This script need to be executed from the android build directory"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
rm -rf "$TMP_PATH"
|
||
|
mkdir -p "$TMP_PATH"
|
||
|
|
||
|
ANDROID_MANIFEST="$SCRIPT_PATH/AndroidManifest.xml"
|
||
|
ABI=`ls "$BUILD_PATH/android/apk/apk/lib" --sort=time | head -n 1`
|
||
|
|
||
|
if [ ! -f "$ANDROID_MANIFEST" -o "$ABI" = "" ]; then
|
||
|
echo "Invalid manifest/ABI, did you try building first ?"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
mkdir -p "$TMP_PATH"/jni
|
||
|
touch "$TMP_PATH"/jni/Android.mk
|
||
|
echo "APP_ABI := $ABI" > "$TMP_PATH"/jni/Application.mk
|
||
|
|
||
|
DEST=obj/local/$ABI
|
||
|
mkdir -p "$TMP_PATH/$DEST"
|
||
|
|
||
|
cp "$BUILD_PATH/libmpd.so" "$TMP_PATH/$DEST"
|
||
|
cp "$ANDROID_MANIFEST" "$TMP_PATH"
|
||
|
|
||
|
(cd "$TMP_PATH" && bash $ANDROID_NDK/ndk-gdb $NDK_GDB_ARGS)
|