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 |