Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6b186a5 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "Utility to dump stacks from arbitrary processes."

parents e028edc0 f5824371
Loading
Loading
Loading
Loading
+34 −1
Original line number Diff line number Diff line
@@ -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()