diff options
Diffstat (limited to 'chromium/third_party/skia/platform_tools/android/bin/android_gdb_apk')
-rwxr-xr-x | chromium/third_party/skia/platform_tools/android/bin/android_gdb_apk | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/chromium/third_party/skia/platform_tools/android/bin/android_gdb_apk b/chromium/third_party/skia/platform_tools/android/bin/android_gdb_apk new file mode 100755 index 00000000000..5d8a394e687 --- /dev/null +++ b/chromium/third_party/skia/platform_tools/android/bin/android_gdb_apk @@ -0,0 +1,60 @@ +#!/bin/bash +# +# android_gdb: Pushes parameter binary and gdbserver. Connects +# and enters debugging environment. + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source $SCRIPT_DIR/android_setup.sh + +APP_NAME=${APP_ARGS[0]} +PORT=5039 + +source $SCRIPT_DIR/utils/setup_adb.sh + + +# Forward local to remote socket connection. +$ADB forward "tcp:$PORT" "tcp:$PORT" + +# We kill all previous instances of gdbserver to rid all port overriding errors. +$ADB shell ps | grep gdbserver | awk '{print $2}' | xargs -r $ADB shell kill + +# We need the debug symbols from these files +GDB_TMP_DIR=$(pwd)/android_gdb_tmp +mkdir -p $GDB_TMP_DIR +echo "Copying symbol files" +adb_pull_if_needed /system/bin/app_process $GDB_TMP_DIR +adb_pull_if_needed /system/lib/libc.so $GDB_TMP_DIR +adb_pull_if_needed /data/data/com.skia/lib/libskia_android.so $GDB_TMP_DIR +adb_pull_if_needed /data/data/com.skia/lib/libSampleApp.so $GDB_TMP_DIR + +echo "Pushing gdbserver..." +adb_push_if_needed $ANDROID_TOOLCHAIN/../gdbserver /data/local/tmp + +# Launch the app +SK_COMMAND="$APP_ARGS" +echo "Running command $SK_COMMAND" +adb shell am start -n com.skia/com.skia.SkiaSampleActivity + +# Attach gdbserver to the app process +PID=$($ADB shell ps | grep com.skia | awk '{print $2}') +echo "Attaching to pid: $PID" +$ADB shell /data/local/tmp/gdbserver :$PORT --attach $PID & + +# Wait for gdbserver +sleep 2 + +# Set up gdb commands +GDBSETUP=$GDB_TMP_DIR/gdb.setup +echo "file $GDB_TMP_DIR/app_process" >> $GDBSETUP +echo "target remote :$PORT" >> $GDBSETUP +echo "set solib-absolute-prefix $GDB_TMP_DIR" >> $GDBSETUP +echo "set solib-search-path $GDB_TMP_DIR" >> $GDBSETUP + +# Launch gdb client +echo "Entering gdb client shell" +GDB_COMMAND=$(command ls "$ANDROID_TOOLCHAIN"/*-gdb | head -n1) +"$GDB_COMMAND" -x $GDBSETUP + +# Clean up +rm -rf $GDB_TMP_DIR + |