1121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com#!/bin/bash 2121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com# 3121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com# android_gdbserver: Pushes gdbserver. Starts debugging environment. 4121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 5121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comSCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 67627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.comsource $SCRIPT_DIR/android_setup.sh 7cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comsource $SCRIPT_DIR/utils/setup_adb.sh 8cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 944566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgAPP_NAME=${APP_ARGS[0]} 107627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.comPORT=5039 11121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 1244566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgBUILD_DIR="${SKIA_OUT}/${BUILDTYPE}" 1344566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgTARGET_LIBRARY="${BUILD_DIR}/lib/lib${APP_NAME}.so" 1444566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgif [ ! -f "$TARGET_LIBRARY" ] 15cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comthen 1644566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org echo "Unable to find the ${APP_NAME} library at ${TARGET_LIBRARY}." 17cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com exit 1 18cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comfi 19121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 20121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com# We need the debug symbols from these files 21121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comGDB_TMP_DIR=$(pwd)/android_gdb_tmp 22c2d6a20ef826eddf5348a9dc61597815126f9393commit-bot@chromium.orgmkdir -p $GDB_TMP_DIR 23cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 24121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Copying symbol files" 25d75547925d522cfc922e7f73ab0d69076972199cqiankun.miaoif [[ $ANDROID_ARCH == *64* ]]; then 26d75547925d522cfc922e7f73ab0d69076972199cqiankun.miao SYSTEM_LIBRARY_PATH=/system/lib64 27d75547925d522cfc922e7f73ab0d69076972199cqiankun.miaoelse 28d75547925d522cfc922e7f73ab0d69076972199cqiankun.miao SYSTEM_LIBRARY_PATH=/system/lib 29d75547925d522cfc922e7f73ab0d69076972199cqiankun.miaofi 3019a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.orgfor library_file in \ 3119a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libc.so \ 328338a9a855cf5e5127dcb62e48d5036b1ad2f29bscroggo libc++.so \ 3319a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libstdc++.so \ 3419a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libm.so \ 3519a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org liblog.so \ 3619a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libz.so \ 3719a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libgccdemangle.so \ 38ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao libsigchain.so \ 39ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao libcutils.so \ 40ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao libunwind.so \ 41ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao libunwind-ptrace.so \ 42ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao libbacktrace.so \ 4319a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libutils.so \ 44963092a9beb071c90c1ee102b489e3eb44072878Dan Albert libc++.so \ 4519a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libGLES_trace.so \ 4619a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libEGL.so \ 4719a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libGLESv2.so \ 4819a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org ; do 49ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld ${SYSTEM_LIBRARY_PATH}/${library_file}` 50ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao if [ "${ANDROID_LS:0:1}" == "-" ]; then 51ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao adb_pull_if_needed "${SYSTEM_LIBRARY_PATH}/${library_file}" $GDB_TMP_DIR 52ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao fi 5319a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.orgdone 5419a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org 55ac298384b33efaa9e87431dd42a7270753de9864qiankun.miaoif [[ $ANDROID_ARCH == *64* ]]; then 56ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao adb_pull_if_needed /system/bin/linker64 $GDB_TMP_DIR 57ac298384b33efaa9e87431dd42a7270753de9864qiankun.miaoelse 58ac298384b33efaa9e87431dd42a7270753de9864qiankun.miao adb_pull_if_needed /system/bin/linker $GDB_TMP_DIR 59ac298384b33efaa9e87431dd42a7270753de9864qiankun.miaofi 60121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 61cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comecho "Pushing app..." 6244566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgfor file in \ 6344566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org "${BUILD_DIR}/skia_launcher" \ 6444566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org "${BUILD_DIR}/lib/libskia_android.so" \ 6544566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org "${BUILD_DIR}/lib/lib${APP_NAME}.so" \ 6644566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org ; do 6744566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org cp "$file" $GDB_TMP_DIR 6844566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org adb_push_if_needed "$file" /data/local/tmp 6944566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgdone 70121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 71121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Pushing gdbserver..." 72f9552230dc0d15fd1c535ad6351c3a8edde5ac82tomhudsonadb_push_if_needed $ANDROID_TOOLCHAIN/../gdbserver /data/local/tmp 73121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 74121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Setting up port forward" 75121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com$ADB forward "tcp:5039" "tcp:5039" 76121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 77cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com# Kill all previous instances of gdbserver and the app to rid all port overriding errors. 78121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Killing any running Skia processes." 79121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com$ADB shell ps | grep gdbserver | awk '{print $2}' | xargs $ADB shell kill 80cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com$ADB shell ps | grep ${APP_NAME} | awk '{print $2}' | xargs $ADB shell kill 81121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 82121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com# Starting up gdbserver in android shell 8344566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgecho "Starting gdbserver with command: ${APP_ARGS[@]}" 84d75547925d522cfc922e7f73ab0d69076972199cqiankun.miao$ADB shell LD_LIBRARY_PATH=/data/local/tmp:\$LD_LIBRARY_PATH /data/local/tmp/gdbserver :5039 /data/local/tmp/skia_launcher ${APP_ARGS[@]} & 85