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

Commit 91efe6bb authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Enhance 'stacks' script to handle native processes." into klp-dev

parents 0dcef01e b12c2e53
Loading
Loading
Loading
Loading
+34 −20
Original line number Diff line number Diff line
@@ -845,12 +845,22 @@ function stacks()
    if [[ $1 =~ ^[0-9]+$ ]] ; then
        local PID="$1"
    elif [ "$1" ] ; then
        local PID=$(pid $1)
        local PIDLIST="$(pid $1)"
        if [[ $PIDLIST =~ ^[0-9]+$ ]] ; then
            local PID="$PIDLIST"
        elif [ "$PIDLIST" ] ; then
            echo "more than one process: $1"
        else
            echo "no such process: $1"
        fi
    else
        echo "usage: stacks [pid|process name]"
    fi

    if [ "$PID" ] ; then
        # Determine whether the process is native
        if adb shell ls -l /proc/$PID/exe | grep -q /system/bin/app_process ; then
            # Dump stacks of Dalvik process
            local TRACES=/data/anr/traces.txt
            local ORIG=/data/anr/traces.orig
            local TMP=/data/anr/traces.tmp
@@ -864,12 +874,16 @@ function stacks()

            # Dump stacks and wait for dump to finish
            adb shell kill -3 $PID
        adb shell notify $TRACES
            adb shell notify $TRACES >/dev/null

            # Restore original stacks, and show current output
            adb shell mv $TRACES $TMP
            adb shell mv $ORIG $TRACES
        adb shell cat $TMP | less -S
            adb shell cat $TMP
        else
            # Dump stacks of native process
            adb shell debuggerd -b $PID
        fi
    fi
}