blob: bae3360b9604b85f163f195e38719e69516dc3c4 [file] [log] [blame]
Zhengyin Qian9e904772016-05-09 11:40:18 -07001#!/bin/bash
2
Zhengyin Qiand93aa412016-06-21 14:05:44 -07003TRACE_DIR=/data/misc/anrd
4TRACE_FILE_PATTEN=dump_of_anrdaemon
Zhengyin Qian9e904772016-05-09 11:40:18 -07005
6if [ $# -eq 1 ]; then
7 DEVICE=$(echo "-s $1")
8else
9 DEVICE=""
10fi
11
12PID=$(adb $DEVICE shell "ps | grep anrd")
13
14if [ $? -ne 0 ]; then
15 echo "FAILED. ADB failed or Daemon is not running."
16 exit 1
17fi
18
19PID=$(echo "$PID" | awk '{ print $2 }')
20adb $DEVICE shell "kill -s SIGUSR1 $PID"
21
Zhengyin Qiand93aa412016-06-21 14:05:44 -070022TRACE_FILE=$(adb $DEVICE shell "ls $TRACE_DIR \
Nancy Zheng95c00592016-08-05 18:48:20 -070023 | grep $TRACE_FILE_PATTEN | tail -n1" | tr -d '\r')
Zhengyin Qian9e904772016-05-09 11:40:18 -070024
25# Wiat the trace file generation to complete
Zhengyin Qian83208e52016-08-09 10:56:51 -070026adb $DEVICE shell "lsof -p $PID" | grep $TRACE_FILE > /dev/null
Zhengyin Qian9e904772016-05-09 11:40:18 -070027while [ $? -eq 0 ];
28do
29 sleep 1
Zhengyin Qian83208e52016-08-09 10:56:51 -070030 adb $DEVICE shell "lsof -p $PID" | grep "$TRACE_FILE" > /dev/null
Zhengyin Qian9e904772016-05-09 11:40:18 -070031done
32
33if [ -z "$TRACE_FILE" ]; then
34 echo "FAILED. Trace file not created"
35fi
36
37adb $DEVICE pull "${TRACE_DIR}/${TRACE_FILE}" ${TRACE_FILE}
38
39CURRENT_DIR=$(pwd)
40echo SUCCEED!
41echo Trace stored at ${CURRENT_DIR}/${TRACE_FILE}