You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
911 B
42 lines
911 B
#!/bin/bash
|
|
|
|
TRACE_DIR=/data/misc/anrd
|
|
TRACE_FILE_PATTEN=dump_of_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 \
|
|
| grep $TRACE_FILE_PATTEN | tail -n1" | tr -d '\r')
|
|
|
|
# Wiat the trace file generation to complete
|
|
adb $DEVICE shell "lsof -p $PID" | grep $TRACE_FILE > /dev/null
|
|
while [ $? -eq 0 ];
|
|
do
|
|
sleep 1
|
|
adb $DEVICE shell "lsof -p $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}
|