skia2/platform_tools/android/bin/android_gdb
djsollen@google.com dcdd57faf0 Copy the top level Android directory into trunk.
This CL is the first step in a series needed to move the
android directory into trunk. After the copy we will update
GYP and DEPS to point to the new location and only then
remove the original directory.

git-svn-id: http://skia.googlecode.com/svn/trunk@8891 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-29 12:09:31 +00:00

64 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# android_gdb: Pushes parameter binary and gdbserver. Connects
# and enters debugging environment.
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
APP_NAME=$(basename $1)
PORT=5039
# Collect extra arguments to be passed to the Skia binary
shift
while (( "$#" )); do
APP_ARGS="$APP_ARGS $1"
shift
done
source $SCRIPT_DIR/android_setup.sh
source $SCRIPT_DIR/utils/setup_adb.sh
echo "Installing Skia Android app"
$SCRIPT_DIR/android_install_skia -f
# 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 $GDB_TMP_DIR
echo "Copying symbol files"
$ADB pull /system/bin/app_process $GDB_TMP_DIR
$ADB pull /system/lib/libc.so $GDB_TMP_DIR
$ADB pull /data/data/com.skia/lib/lib$APP_NAME.so $GDB_TMP_DIR
# Launch the app
SK_COMMAND="$APP_NAME$APP_ARGS"
echo "Running command $SK_COMMAND"
$ADB shell am broadcast -a com.skia.intent.action.LAUNCH_SKIA -n com.skia/.SkiaReceiver -e args "$SK_COMMAND"
# Attach gdbserver to the app process
PID=$($ADB shell ps | grep skia_native | awk '{print $2}')
echo "Attaching to pid: $PID"
$ADB shell /data/data/com.skia/lib/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"
$ANDROID_TOOLCHAIN/arm-linux-androideabi-gdb -x $GDBSETUP
# Clean up
rm -rf $GDB_TMP_DIR