| Zhengyin Qian | 9e90477 | 2016-05-09 11:40:18 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| Zhengyin Qian | d93aa41 | 2016-06-21 14:05:44 -0700 | [diff] [blame] | 3 | TRACE_DIR=/data/misc/anrd |
| 4 | TRACE_FILE_PATTEN=dump_of_anrdaemon |
| Zhengyin Qian | 9e90477 | 2016-05-09 11:40:18 -0700 | [diff] [blame] | 5 | |
| 6 | if [ $# -eq 1 ]; then |
| 7 | DEVICE=$(echo "-s $1") |
| 8 | else |
| 9 | DEVICE="" |
| 10 | fi |
| 11 | |
| 12 | PID=$(adb $DEVICE shell "ps | grep anrd") |
| 13 | |
| 14 | if [ $? -ne 0 ]; then |
| 15 | echo "FAILED. ADB failed or Daemon is not running." |
| 16 | exit 1 |
| 17 | fi |
| 18 | |
| 19 | PID=$(echo "$PID" | awk '{ print $2 }') |
| 20 | adb $DEVICE shell "kill -s SIGUSR1 $PID" |
| 21 | |
| Zhengyin Qian | d93aa41 | 2016-06-21 14:05:44 -0700 | [diff] [blame] | 22 | TRACE_FILE=$(adb $DEVICE shell "ls $TRACE_DIR \ |
| Nancy Zheng | 95c0059 | 2016-08-05 18:48:20 -0700 | [diff] [blame] | 23 | | grep $TRACE_FILE_PATTEN | tail -n1" | tr -d '\r') |
| Zhengyin Qian | 9e90477 | 2016-05-09 11:40:18 -0700 | [diff] [blame] | 24 | |
| 25 | # Wiat the trace file generation to complete |
| Zhengyin Qian | 83208e5 | 2016-08-09 10:56:51 -0700 | [diff] [blame] | 26 | adb $DEVICE shell "lsof -p $PID" | grep $TRACE_FILE > /dev/null |
| Zhengyin Qian | 9e90477 | 2016-05-09 11:40:18 -0700 | [diff] [blame] | 27 | while [ $? -eq 0 ]; |
| 28 | do |
| 29 | sleep 1 |
| Zhengyin Qian | 83208e5 | 2016-08-09 10:56:51 -0700 | [diff] [blame] | 30 | adb $DEVICE shell "lsof -p $PID" | grep "$TRACE_FILE" > /dev/null |
| Zhengyin Qian | 9e90477 | 2016-05-09 11:40:18 -0700 | [diff] [blame] | 31 | done |
| 32 | |
| 33 | if [ -z "$TRACE_FILE" ]; then |
| 34 | echo "FAILED. Trace file not created" |
| 35 | fi |
| 36 | |
| 37 | adb $DEVICE pull "${TRACE_DIR}/${TRACE_FILE}" ${TRACE_FILE} |
| 38 | |
| 39 | CURRENT_DIR=$(pwd) |
| 40 | echo SUCCEED! |
| 41 | echo Trace stored at ${CURRENT_DIR}/${TRACE_FILE} |