summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhalid Zubair <kzubair@cyngn.com>2016-06-14 17:36:35 -0700
committerMichael Bestas <mikeioannina@gmail.com>2017-01-01 18:24:30 +0200
commit1b883b45d9bf4582425d2b1cf5ad3a2c6853e084 (patch)
treee89077d112782e7660e8705f75f7728128d1f65c
parent21fce74620bde79f6dbfd10c37251855eb2be4d5 (diff)
downloadandroid_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-xscripts/gdbclient13
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`