blob: 2b01472b77f162b9347a1e9fff99df2c4ca96fcb [file] [log] [blame]
#!/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"