Commit f5824371 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Utility to dump stacks from arbitrary processes.

Saves any existing traces, dumps stacks from the target process,
then restores the original traces.

Change-Id: I2513f0de0d90cccd56c4949ca7d218e430439c00
parent ba25690f
......@@ -789,7 +789,40 @@ function pid()
# to the usual ANR traces file
function systemstack()
{
adb shell echo '""' '>>' /data/anr/traces.txt && adb shell chmod 776 /data/anr/traces.txt && adb shell kill -3 $(pid system_server)
stacks system_server
}
function stacks()
{
if [[ $1 =~ ^[0-9]+$ ]] ; then
local PID="$1"
elif [ "$1" ] ; then
local PID=$(pid $1)
else
echo "usage: stacks [pid|process name]"
fi
if [ "$PID" ] ; then
local TRACES=/data/anr/traces.txt
local ORIG=/data/anr/traces.orig
local TMP=/data/anr/traces.tmp
# Keep original traces to avoid clobbering
adb shell mv $TRACES $ORIG
# Make sure we have a usable file
adb shell touch $TRACES
adb shell chmod 666 $TRACES
# Dump stacks and wait for dump to finish
adb shell kill -3 $PID
adb shell notify $TRACES
# Restore original stacks, and show current output
adb shell mv $TRACES $TMP
adb shell mv $ORIG $TRACES
adb shell cat $TMP | less -S
fi
}
function gdbclient()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment