dcdd57faf0
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
64 lines
1.8 KiB
Bash
Executable File
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
|
|
|