Index: build/android/adb_gdb |
diff --git a/build/android/adb_gdb b/build/android/adb_gdb |
index 97d37db3abc8c9d936d028bc15aac5c297a6e7ea..086e0901eec7bcd2ef91c62c4f2568d44315a568 100755 |
--- a/build/android/adb_gdb |
+++ b/build/android/adb_gdb |
@@ -26,6 +26,7 @@ fi |
TMPDIR= |
GDBSERVER_PIDFILE= |
TARGET_GDBSERVER= |
+COMMAND_PREFIX= |
clean_exit () { |
if [ "$TMPDIR" ]; then |
@@ -36,7 +37,7 @@ clean_exit () { |
fi |
if [ "$TARGET_GDBSERVER" ]; then |
log "Removing target gdbserver binary: $TARGET_GDBSERVER." |
- "$ADB" shell run-as "$PACKAGE_NAME" rm "$TARGET_GDBSERVER" >/dev/null 2>&1 |
+ "$ADB" shell "$COMMAND_PREFIX" rm "$TARGET_GDBSERVER" >/dev/null 2>&1 |
fi |
log "Cleaning up: $TMPDIR" |
rm -rf "$TMPDIR" |
@@ -735,7 +736,7 @@ fi |
# Allow several concurrent debugging sessions |
TARGET_GDBSERVER=/data/data/$PACKAGE_NAME/gdbserver-adb-gdb-$TMP_ID |
-TMP_TARGET_GDBSERVER=/data/local/tmp/gdbserver-adb-gdb-$TMP_ID |
+ROOT_TARGET_GDBSERVER=/data/local/tmp/gdbserver-adb-gdb-$TMP_ID |
# Return the build fingerprint contained in a build.prop file. |
# $1: path to build.prop file |
@@ -907,9 +908,14 @@ SOLIB_DIRS=$(find $PULL_LIBS_DIR -mindepth 1 -maxdepth 4 -type d | \ |
# Push gdbserver to the device |
log "Pushing gdbserver $GDBSERVER to $TARGET_GDBSERVER" |
-adb push $GDBSERVER $TMP_TARGET_GDBSERVER &>/dev/null |
-adb shell run-as $PACKAGE_NAME cp $TMP_TARGET_GDBSERVER . |
jbudorick
2015/01/30 16:43:23
I should've been more clear: why doesn't this CL _
jbudorick
2015/02/02 16:14:46
I did see the patch. This was my comment.
|
-adb shell rm $TMP_TARGET_GDBSERVER |
+adb push $GDBSERVER $ROOT_TARGET_GDBSERVER &>/dev/null |
+if ["$COMMAND_PREFIX" == "$SU_PREFIX"]; then |
+ TARGET_GDBSERVER=$ROOT_TARGET_GDBSERVER |
+else |
+ log "Moving gdbserver to $TARGET_GDBSERVER" |
+ adb shell $COMMAND_PREFIX cp $ROOT_TARGET_GDBSERVER $TARGET_GDBSERVER |
+ adb shell rm $ROOT_TARGET_GDBSERVER |
+fi |
fail_panic "Could not copy gdbserver to the device!" |
PORT=5039 |