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" 2519a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.orgSYSTEM_LIBRARY_PATH=/system/lib 2619a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.orgfor library_file in \ 2719a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libc.so \ 2819a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libstdc++.so \ 2919a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libm.so \ 3019a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org liblog.so \ 3119a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libz.so \ 3219a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libgccdemangle.so \ 3319a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libcorkscrew.so \ 3419a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libutils.so \ 3519a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libstlport.so \ 3619a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libGLES_trace.so \ 3719a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libEGL.so \ 3819a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org libGLESv2.so \ 3919a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org ; do 4019a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org adb_pull_if_needed "${SYSTEM_LIBRARY_PATH}/${library_file}" $GDB_TMP_DIR 4119a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.orgdone 4219a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.org 4319a21894ead074d4c01c6b1c11400338c04bf9a2commit-bot@chromium.orgadb_pull_if_needed /system/bin/linker $GDB_TMP_DIR 44121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 45cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comecho "Pushing app..." 4644566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgfor file in \ 4744566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org "${BUILD_DIR}/skia_launcher" \ 4844566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org "${BUILD_DIR}/lib/libskia_android.so" \ 4944566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org "${BUILD_DIR}/lib/lib${APP_NAME}.so" \ 5044566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org ; do 5144566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org cp "$file" $GDB_TMP_DIR 5244566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.org adb_push_if_needed "$file" /data/local/tmp 5344566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgdone 54121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 55121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Pushing gdbserver..." 56cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comadb_push_if_needed $ANDROID_TOOLCHAIN/../gdbserver data/local/tmp 57121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 58121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Setting up port forward" 59121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com$ADB forward "tcp:5039" "tcp:5039" 60121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 61cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com# Kill all previous instances of gdbserver and the app to rid all port overriding errors. 62121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comecho "Killing any running Skia processes." 63121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com$ADB shell ps | grep gdbserver | awk '{print $2}' | xargs $ADB shell kill 64cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com$ADB shell ps | grep ${APP_NAME} | awk '{print $2}' | xargs $ADB shell kill 65121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 66121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com# Starting up gdbserver in android shell 6744566e2a157915974cfc08819e8f9182690092a1commit-bot@chromium.orgecho "Starting gdbserver with command: ${APP_ARGS[@]}" 68bec3634a4a0bc2ca872f8b6b7a9f445929e9f74bmtklein$ADB shell /data/local/tmp/gdbserver :5039 /data/local/tmp/skia_launcher ${APP_ARGS[@]} & 69