| #!/bin/bash |
| # Copyright (c) 2019 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| set -e |
| CHROME_SRC="$(dirname "$0")/../../.." |
| |
| if [ $# -lt 1 ] ; then |
| echo "Usage: "$0" [--debug-libs] stack-trace-file" |
| echo " --debug-libs uses Debug (rather than Release) libraries." |
| exit 1 |
| fi |
| |
| LIB_TYPE=Release |
| if [[ "$1" == "--debug-libs" ]] ; then |
| LIB_TYPE=Debug |
| shift |
| fi |
| |
| if [ ! -f "$1" ] ; then |
| echo "$1: file not found" |
| exit 1 |
| fi |
| |
| # try to automatically identify architecture and version, if there are no user- |
| # supplied values. |
| if [ -z $ARCH ] ; then |
| if grep -q arm64 "$1" ; then |
| ARCH=arm64-v8a |
| elif grep -q armeabi-v7a "$1" ; then |
| ARCH=armeabi-v7a |
| elif grep -q armeabi "$1" ; then |
| ARCH=armeabi |
| elif grep -q "ABI: 'arm'" "$1" ; then |
| ARCH=armeabi-v7a |
| elif grep -q "ABI: 'arm64'" "$1" ; then |
| ARCH=arm64-v8a |
| elif grep -q "ABI: 'x86_64'" "$1" ; then |
| ARCH=x86_64 |
| elif grep -q "ABI: 'x86'" "$1" ; then |
| ARCH=x86 |
| else |
| echo "Cannot determine architecture." |
| echo "Set the ARCH environment variable explicitly to continue." |
| exit 1 |
| fi |
| fi |
| if [ -z "$VERSION" ] ; then |
| VERSION=$(grep -o -m1 'libcronet\..*\.so' "$1" | |
| sed 's/libcronet\.\(.*\)\.so/\1/') |
| fi |
| |
| echo VERSION=$VERSION |
| echo ARCH=$ARCH |
| echo Using symbolicator from: $CHROME_SRC |
| echo |
| |
| ARCHOPT= |
| if [[ "$ARCH" == "arm64-v8a" ]] ; then |
| ARCHOPT="--arch=arm64" |
| fi |
| |
| FILE=${VERSION}/${LIB_TYPE}/cronet/symbols/${ARCH}/libcronet.${VERSION}.so |
| GSUTIL="$CHROME_SRC/third_party/depot_tools/gsutil.py" |
| $GSUTIL -m cp -R gs://chromium-cronet/android/${FILE} ~/Downloads |
| |
| TRACER="$CHROME_SRC/third_party/android_platform/development/scripts/stack" |
| CHROMIUM_OUTPUT_DIR="$HOME/Downloads" "$TRACER" $ARCHOPT "$1" |