diff options
author | Khalid Zubair <kzubair@cyngn.com> | 2016-06-14 17:36:35 -0700 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2017-01-01 18:24:30 +0200 |
commit | 1b883b45d9bf4582425d2b1cf5ad3a2c6853e084 (patch) | |
tree | e89077d112782e7660e8705f75f7728128d1f65c | |
parent | 21fce74620bde79f6dbfd10c37251855eb2be4d5 (diff) | |
download | android_development-staging/cm-14.1-cafrebase.tar.gz android_development-staging/cm-14.1-cafrebase.tar.bz2 android_development-staging/cm-14.1-cafrebase.zip |
gdbclient: fix gdbclient <processname> invocationstaging/cm-14.1-cafrebase
- `pid` was being run on the host system and not the target.
- toybox does not have `pid`, use `pidof` instead.
- throw an error if more than one pid is matched
Change-Id: I049484013df804e7f0901ec8e4b872bacd839daa
-rwxr-xr-x | scripts/gdbclient | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/scripts/gdbclient b/scripts/gdbclient index 3d62dd405..e4fbfffe1 100755 --- a/scripts/gdbclient +++ b/scripts/gdbclient @@ -89,17 +89,20 @@ function gdbclient() { fi # let's figure out which executable we are about to debug - # check if user specified a name -> resolve to pid if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then PROCESS_NAME=$PID - PID=$(pid --exact $PROCESS_NAME) - if [ -z "$PID" ]; then + PIDS=( $(adb shell "pidof $PROCESS_NAME 2> /dev/null" | tr -d '\r\n') ) + if [[ ${#PIDS[@]} == 0 ]]; then echo "Error: couldn't resolve pid by process name: $PROCESS_NAME" return -4 - else - echo "Resolved pid for $PROCESS_NAME is $PID" + elif [[ ${#PIDS[@]} != 1 ]]; then + echo "Error: more than one 1 PID resolved by process name: $PROCESS_NAME" + echo " PIDs -> ${PIDS[@]}" + return -5 fi + PID="${PIDS[0]}" + echo "Resolved pid for $PROCESS_NAME is [$PID]" fi local ID=`adb shell id -u` |