OSDN Git Service

ANRdaemon: add README and a bash script to easily get trace. am: 9e90477a67
[android-x86/system-extras.git] / ANRdaemon / ANRdaemon_get_trace.sh
1 #!/bin/bash
2
3 TRACE_DIR=/sdcard/ANRdaemon
4
5 if [ $# -eq 1 ]; then
6     DEVICE=$(echo "-s $1")
7 else
8     DEVICE=""
9 fi
10
11 PID=$(adb $DEVICE shell "ps | grep anrd")
12
13 if [ $? -ne 0 ]; then
14     echo "FAILED. ADB failed or Daemon is not running."
15     exit 1
16 fi
17
18 PID=$(echo "$PID" | awk '{ print $2 }')
19 adb $DEVICE shell "kill -s SIGUSR1 $PID"
20
21 TRACE_FILE=$(adb $DEVICE shell "ls $TRACE_DIR | tail -n1" | tr -d '\r')
22
23 # Wiat the trace file generation to complete
24 adb $DEVICE shell "lsof $PID" | grep $TRACE_FILE > /dev/null
25 while [ $? -eq 0 ];
26 do
27     sleep 1
28     adb $DEVICE shell "lsof $PID" | grep "$TRACE_FILE" > /dev/null
29 done
30
31 if [ -z "$TRACE_FILE" ]; then
32     echo "FAILED. Trace file not created"
33 fi
34
35 adb $DEVICE pull "${TRACE_DIR}/${TRACE_FILE}" ${TRACE_FILE}
36
37 CURRENT_DIR=$(pwd)
38 echo SUCCEED!
39 echo Trace stored at ${CURRENT_DIR}/${TRACE_FILE}