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.
41 lines
911 B
41 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}
|
|
|