Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/bin/bash | 1 #!/bin/bash |
| 2 # | 2 # |
| 3 # android_gdb: Pushes gdbserver. Connects and enters debugging environment. | 3 # android_gdb: Pushes gdbserver. Connects and enters debugging environment. |
| 4 | 4 |
| 5 deviceID="" | |
| 6 while (( "$#" )); do | |
| 7 | |
| 8 if [[ $(echo "$1" | grep "^-d$") != "" ]]; | |
| 9 then | |
| 10 deviceID="$2" | |
| 11 shift | |
| 12 else | |
| 13 gdbVars="${gdbVars[@]} $1" | |
| 14 fi | |
| 15 | |
| 16 shift | |
| 17 done | |
| 18 | |
| 19 # hack for x86 support in android_setup.sh | |
| 20 if [ "$deviceID" == "x86" ] || [ "$deviceID" == "razr_i" ] | |
| 21 then | |
| 22 ANDROID_ARCH=x86 | |
| 23 fi | |
| 24 | |
| 5 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | 25 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| 6 | 26 |
| 7 # setup the gdbserver | 27 # setup the gdbserver |
| 8 $SCRIPT_DIR/android_gdbserver $@ | 28 source $SCRIPT_DIR/android_gdbserver ${gdbVars[@]} |
|
djsollen
2013/07/30 12:37:51
I would not source it. Doing so could cause us to
yunchao
2013/07/31 02:11:53
If we don't source it, ANDROID_ARCH env parameter
djsollen
2013/07/31 13:45:06
I see what your saying, but you can also just expo
yunchao
2013/08/01 02:10:52
Yes, very good suggestion, djsollen. I have update
| |
| 9 | 29 |
| 10 # quit if gdbserver setup failed | 30 # quit if gdbserver setup failed |
| 11 if [[ "$?" != "0" ]]; then | 31 if [[ "$?" != "0" ]]; then |
| 12 echo "ERROR: gdbserver failed to setup properly." | 32 echo "ERROR: gdbserver failed to setup properly." |
| 13 exit 1 | 33 exit 1 |
| 14 fi | 34 fi |
| 15 | 35 |
| 16 # Wait for gdbserver | 36 # Wait for gdbserver |
| 17 sleep 2 | 37 sleep 2 |
| 18 | 38 |
| 19 # variables that must match those in gdb_server | 39 # variables that must match those in gdb_server |
| 20 GDB_TMP_DIR=$(pwd)/android_gdb_tmp | 40 GDB_TMP_DIR=$(pwd)/android_gdb_tmp |
| 21 APP_NAME=$(basename $1) | 41 APP_NAME=$(basename ${gdbVars[0]}) |
| 22 PORT=5039 | 42 PORT=5039 |
| 23 | 43 |
| 24 # Set up gdb commands | 44 # Set up gdb commands |
| 25 GDBSETUP=$GDB_TMP_DIR/gdb.setup | 45 GDBSETUP=$GDB_TMP_DIR/gdb.setup |
| 26 echo "file $GDB_TMP_DIR/skia_launcher" >> $GDBSETUP | 46 echo "file $GDB_TMP_DIR/skia_launcher" >> $GDBSETUP |
| 27 echo "target remote :$PORT" >> $GDBSETUP | 47 echo "target remote :$PORT" >> $GDBSETUP |
| 28 echo "set solib-absolute-prefix $GDB_TMP_DIR" >> $GDBSETUP | 48 echo "set solib-absolute-prefix $GDB_TMP_DIR" >> $GDBSETUP |
| 29 echo "set solib-search-path $GDB_TMP_DIR" >> $GDBSETUP | 49 echo "set solib-search-path $GDB_TMP_DIR" >> $GDBSETUP |
| 30 | 50 |
| 31 # The apps shared library symbols are not loaded by default so we load them here | 51 # The apps shared library symbols are not loaded by default so we load them here |
| 32 echo "break skia_launcher.cpp:launch_app" >> $GDBSETUP | 52 echo "break skia_launcher.cpp:launch_app" >> $GDBSETUP |
| 33 echo "continue" >> $GDBSETUP | 53 echo "continue" >> $GDBSETUP |
| 34 echo "sharedLibrary $APP_NAME" >> $GDBSETUP | 54 echo "sharedLibrary $APP_NAME" >> $GDBSETUP |
| 35 | 55 |
| 36 source $SCRIPT_DIR/android_setup.sh | 56 source $SCRIPT_DIR/android_setup.sh |
| 37 | 57 |
| 38 # Launch gdb client | 58 # Launch gdb client |
| 39 echo "Entering gdb client shell" | 59 echo "Entering gdb client shell" |
| 40 $ANDROID_TOOLCHAIN/arm-linux-androideabi-gdb -x $GDBSETUP | 60 if [ "$ANDROID_ARCH" == "x86" ] |
| 61 then | |
| 62 $ANDROID_TOOLCHAIN/i686-linux-android-gdb -x $GDBSETUP | |
| 63 else | |
| 64 $ANDROID_TOOLCHAIN/arm-linux-androideabi-gdb -x $GDBSETUP | |
| 65 fi | |
| 41 | 66 |
| 42 # Clean up | 67 # Clean up |
| 43 rm -rf $GDB_TMP_DIR | 68 rm -rf $GDB_TMP_DIR |
| OLD | NEW |