84 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| #
 | |
| # android_gdbserver: Pushes gdbserver. Starts debugging environment.
 | |
| 
 | |
| SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 | |
| source $SCRIPT_DIR/utils/android_setup.sh
 | |
| source $SCRIPT_DIR/utils/setup_adb.sh
 | |
| 
 | |
| APP_NAME=${APP_ARGS[0]}
 | |
| 
 | |
| TARGET_EXE="${SKIA_OUT}/${APP_NAME}"
 | |
| if [ ! -f "$TARGET_EXE" ]
 | |
| then
 | |
|   echo "Unable to find ${TARGET_EXE}."
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| IS_64_BIT="false"
 | |
| GN_TARGET_CPU=$(gn args --list=target_cpu $SKIA_OUT                     \
 | |
|                | grep "Current value = "                                \
 | |
|                | sed -e s/"Current value = "// -e s/\"//g -e s/" "//g)
 | |
| if [[ $GN_TARGET_CPU == *64* ]]; then
 | |
|   IS_64_BIT="true"
 | |
| fi
 | |
| 
 | |
| # We need the debug symbols from these files
 | |
| GDB_TMP_DIR=$SKIA_OUT/android_gdb_tmp
 | |
| mkdir -p $GDB_TMP_DIR
 | |
| 
 | |
| echo "Copying symbol files"
 | |
| if [[ $IS_64_BIT == "true" ]]; then
 | |
|   SYSTEM_LIBRARY_PATH=/system/lib64
 | |
|   echo "64 bit!"
 | |
| else
 | |
|   SYSTEM_LIBRARY_PATH=/system/lib
 | |
| fi
 | |
| for library_file in \
 | |
|     libc.so \
 | |
|     libc++.so \
 | |
|     libstdc++.so \
 | |
|     libm.so \
 | |
|     liblog.so \
 | |
|     libz.so \
 | |
|     libsigchain.so \
 | |
|     libcutils.so \
 | |
|     libunwind.so \
 | |
|     libbacktrace.so \
 | |
|     libutils.so \
 | |
|     libEGL.so \
 | |
|     libGLESv2.so \
 | |
|     ; do
 | |
|     ANDROID_LS=`$ADB $DEVICE_SERIAL shell -x ls -ld ${SYSTEM_LIBRARY_PATH}/${library_file}`
 | |
|     if [ "${ANDROID_LS:0:1}" == "-" ]; then
 | |
|       adb_pull_if_needed "${SYSTEM_LIBRARY_PATH}/${library_file}" $GDB_TMP_DIR
 | |
|     fi
 | |
| done
 | |
| 
 | |
| if [[ $IS_64_BIT == "true" ]]; then
 | |
|   adb_pull_if_needed /system/bin/linker64 $GDB_TMP_DIR
 | |
| else
 | |
|   adb_pull_if_needed /system/bin/linker $GDB_TMP_DIR
 | |
| fi
 | |
| 
 | |
| echo "Pushing app..."
 | |
| cp "$TARGET_EXE" $GDB_TMP_DIR
 | |
| adb_push_if_needed "${TARGET_EXE}" /data/local/tmp
 | |
| 
 | |
| echo "Pushing gdbserver..."
 | |
| adb_push_if_needed $SKIA_OUT/gdbserver /data/local/tmp
 | |
| 
 | |
| echo "Setting up port forward"
 | |
| $ADB forward "tcp:5039" "tcp:5039"
 | |
| 
 | |
| # Kill all previous instances of gdbserver and the app to rid all port overriding errors.
 | |
| echo "Killing any running Skia processes."
 | |
| set +e
 | |
| $ADB shell ps | grep gdbserver | awk '{print $2}' | xargs $ADB shell kill 2> /dev/null
 | |
| $ADB shell ps | grep ${APP_NAME} | awk '{print $2}' | xargs $ADB shell kill 2> /dev/null
 | |
| set -e
 | |
| 
 | |
| # Starting up gdbserver in android shell
 | |
| echo "Starting gdbserver with command: ${APP_ARGS[@]}"
 | |
| $ADB shell /data/local/tmp/gdbserver :5039 /data/local/tmp/${APP_ARGS[@]} &
 |