diff options
author | Zhengyin Qian <qianzy@google.com> | 2016-05-09 11:40:18 -0700 |
---|---|---|
committer | Zhengyin Qian <qianzy@google.com> | 2016-05-26 17:56:34 -0700 |
commit | 9e90477a678b5b5fa6ac6dd7e78770746d6c50bf (patch) | |
tree | dcfc5366bf17afc2ed5cd8d0d2835722f895cb5b /ANRdaemon/ANRdaemon_get_trace.sh | |
parent | 5b42895d33d72e74e3e3446e1d43fc541fbf404f (diff) | |
download | extras-9e90477a678b5b5fa6ac6dd7e78770746d6c50bf.tar.gz |
ANRdaemon: add README and a bash script to easily get trace.
Bug: 28989601
Change-Id: I5c9b819a6b05003e68d26bfacccf4c539ddab7ae
Diffstat (limited to 'ANRdaemon/ANRdaemon_get_trace.sh')
-rwxr-xr-x | ANRdaemon/ANRdaemon_get_trace.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ANRdaemon/ANRdaemon_get_trace.sh b/ANRdaemon/ANRdaemon_get_trace.sh new file mode 100755 index 00000000..be4062c7 --- /dev/null +++ b/ANRdaemon/ANRdaemon_get_trace.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +TRACE_DIR=/sdcard/ANRdaemon + +if [ $# -eq 1 ]; then + DEVICE=$(echo "-s $1") +else + DEVICE="" +fi + +PID=$(adb $DEVICE shell "ps | grep anrd") + +if [ $? -ne 0 ]; then + echo "FAILED. ADB failed or Daemon is not running." + exit 1 +fi + +PID=$(echo "$PID" | awk '{ print $2 }') +adb $DEVICE shell "kill -s SIGUSR1 $PID" + +TRACE_FILE=$(adb $DEVICE shell "ls $TRACE_DIR | tail -n1" | tr -d '\r') + +# Wiat the trace file generation to complete +adb $DEVICE shell "lsof $PID" | grep $TRACE_FILE > /dev/null +while [ $? -eq 0 ]; +do + sleep 1 + adb $DEVICE shell "lsof $PID" | grep "$TRACE_FILE" > /dev/null +done + +if [ -z "$TRACE_FILE" ]; then + echo "FAILED. Trace file not created" +fi + +adb $DEVICE pull "${TRACE_DIR}/${TRACE_FILE}" ${TRACE_FILE} + +CURRENT_DIR=$(pwd) +echo SUCCEED! +echo Trace stored at ${CURRENT_DIR}/${TRACE_FILE} |