summaryrefslogtreecommitdiff
path: root/ANRdaemon/ANRdaemon_get_trace.sh
diff options
context:
space:
mode:
authorZhengyin Qian <qianzy@google.com>2016-05-09 11:40:18 -0700
committerZhengyin Qian <qianzy@google.com>2016-05-26 17:56:34 -0700
commit9e90477a678b5b5fa6ac6dd7e78770746d6c50bf (patch)
treedcfc5366bf17afc2ed5cd8d0d2835722f895cb5b /ANRdaemon/ANRdaemon_get_trace.sh
parent5b42895d33d72e74e3e3446e1d43fc541fbf404f (diff)
downloadextras-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-xANRdaemon/ANRdaemon_get_trace.sh39
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}