Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: build/android/adb_gdb

Issue 77843003: Android: fixes out dir for adb_gdb with cr tool. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # 2 #
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 # 6 #
7 7
8 # A generic script used to attach to a running Chromium process and 8 # A generic script used to attach to a running Chromium process and
9 # debug it. Most users should not use this directly, but one of the 9 # debug it. Most users should not use this directly, but one of the
10 # wrapper scripts like adb_gdb_content_shell 10 # wrapper scripts like adb_gdb_content_shell
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 find all of them automatically. This is the recommended way to use it. 241 find all of them automatically. This is the recommended way to use it.
242 242
243 Otherwise, if you have ANDROID_NDK_ROOT defined in your environment, 243 Otherwise, if you have ANDROID_NDK_ROOT defined in your environment,
244 the script will use it to find the gdb and gdbserver binaries. You can 244 the script will use it to find the gdb and gdbserver binaries. You can
245 also use --ndk-dir=<path> to specify an alternative NDK installation 245 also use --ndk-dir=<path> to specify an alternative NDK installation
246 directory. 246 directory.
247 247
248 The script tries to find the most recent version of the debug version of 248 The script tries to find the most recent version of the debug version of
249 shared libraries under one of the following directories: 249 shared libraries under one of the following directories:
250 250
251 \$CHROMIUM_SRC/out/Release/lib/ (used by Ninja builds) 251 \$CHROMIUM_SRC/$CHROMIUM_OUT_DIR/Release/lib/ (used by Ninja builds)
252 \$CHROMIUM_SRC/out/Debug/lib/ (used by Ninja builds) 252 \$CHROMIUM_SRC/$CHROMIUM_OUT_DIR/Debug/lib/ (used by Ninja builds)
253 \$CHROMIUM_SRC/out/Release/lib.target/ (used by Make builds) 253 \$CHROMIUM_SRC/$CHROMIUM_OUT_DIR/Release/lib.target/ (used by Make builds)
254 \$CHROMIUM_SRC/out/Debug/lib.target/ (used by Make builds) 254 \$CHROMIUM_SRC/$CHROMIUM_OUT_DIR/Debug/lib.target/ (used by Make builds)
digit1 2013/11/20 13:49:18 I believe this will get printed before detect_symb
bulach 2013/11/20 16:47:36 excellent idea! done.
255 255
256 You can restrict this search by using --release or --debug to specify the 256 You can restrict this search by using --release or --debug to specify the
257 build type, or simply use --symbol-dir=<path> to specify the file manually. 257 build type, or simply use --symbol-dir=<path> to specify the file manually.
258 258
259 The script tries to extract the target architecture from your GYP_DEFINES, 259 The script tries to extract the target architecture from your GYP_DEFINES,
260 but if this fails, will default to 'arm'. Use --target-arch=<name> to force 260 but if this fails, will default to 'arm'. Use --target-arch=<name> to force
261 its value. 261 its value.
262 262
263 Otherwise, the script will complain, but you can use the --gdbserver, 263 Otherwise, the script will complain, but you can use the --gdbserver,
264 --gdb and --symbol-lib options to specify everything manually. 264 --gdb and --symbol-lib options to specify everything manually.
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 665
666 # Return the timestamp of a given time, as number of seconds since epoch. 666 # Return the timestamp of a given time, as number of seconds since epoch.
667 # $1: file path 667 # $1: file path
668 # Out: file timestamp 668 # Out: file timestamp
669 get_file_timestamp () { 669 get_file_timestamp () {
670 stat -c %Y "$1" 2>/dev/null 670 stat -c %Y "$1" 2>/dev/null
671 } 671 }
672 672
673 # Detect the build type and symbol directory. This is done by finding 673 # Detect the build type and symbol directory. This is done by finding
674 # the most recent sub-directory containing debug shared libraries under 674 # the most recent sub-directory containing debug shared libraries under
675 # $CHROMIUM_SRC/out/ 675 # $CHROMIUM_SRC/$CHROMIUM_OUT_DIR/
676 # 676 #
677 # $1: $BUILDTYPE value, can be empty 677 # $1: $BUILDTYPE value, can be empty
678 # Out: nothing, but this sets SYMBOL_DIR 678 # Out: nothing, but this sets SYMBOL_DIR
679 # 679 #
680 detect_symbol_dir () { 680 detect_symbol_dir () {
681 local SUBDIRS SUBDIR LIST DIR DIR_LIBS TSTAMP 681 local SUBDIRS SUBDIR LIST DIR DIR_LIBS TSTAMP OUT_DIR
682 # Note: Ninja places debug libraries under out/$BUILDTYPE/lib/, while 682 # Note: Ninja places debug libraries under out/$BUILDTYPE/lib/, while
683 # Make places then under out/$BUILDTYPE/lib.target. 683 # Make places then under out/$BUILDTYPE/lib.target.
684 if [ "$1" ]; then 684 if [ "$1" ]; then
685 SUBDIRS="$1/lib $1/lib.target" 685 SUBDIRS="$1/lib $1/lib.target"
686 else 686 else
687 SUBDIRS="Release/lib Debug/lib Release/lib.target Debug/lib.target" 687 SUBDIRS="Release/lib Debug/lib Release/lib.target Debug/lib.target"
688 fi 688 fi
689 if [ "$CHROMIUM_OUT_DIR" ]; then
690 OUT_DIR="$CHROMIUM_OUT_DIR"
691 else
692 OUT_DIR="out"
693 fi
689 LIST=$TMPDIR/scan-subdirs-$$.txt 694 LIST=$TMPDIR/scan-subdirs-$$.txt
690 printf "" > "$LIST" 695 printf "" > "$LIST"
691 for SUBDIR in $SUBDIRS; do 696 for SUBDIR in $SUBDIRS; do
692 DIR=$CHROMIUM_SRC/out/$SUBDIR 697 DIR=$CHROMIUM_SRC/$OUT_DIR/$SUBDIR
693 if [ -d "$DIR" ]; then 698 if [ -d "$DIR" ]; then
694 # Ignore build directories that don't contain symbol versions 699 # Ignore build directories that don't contain symbol versions
695 # of the shared libraries. 700 # of the shared libraries.
696 DIR_LIBS=$(ls "$DIR"/lib*.so 2>/dev/null) 701 DIR_LIBS=$(ls "$DIR"/lib*.so 2>/dev/null)
697 if [ -z "$DIR_LIBS" ]; then 702 if [ -z "$DIR_LIBS" ]; then
698 echo "No shared libs: $DIR" 703 echo "No shared libs: $DIR"
699 continue 704 continue
700 fi 705 fi
701 TSTAMP=$(get_file_timestamp "$DIR") 706 TSTAMP=$(get_file_timestamp "$DIR")
702 printf "%s %s\n" "$TSTAMP" "$SUBDIR" >> "$LIST" 707 printf "%s %s\n" "$TSTAMP" "$SUBDIR" >> "$LIST"
703 fi 708 fi
704 done 709 done
705 SUBDIR=$(cat $LIST | sort -r | head -1 | cut -d" " -f2) 710 SUBDIR=$(cat $LIST | sort -r | head -1 | cut -d" " -f2)
706 rm -f "$LIST" 711 rm -f "$LIST"
707 712
708 if [ -z "$SUBDIR" ]; then 713 if [ -z "$SUBDIR" ]; then
709 if [ -z "$1" ]; then 714 if [ -z "$1" ]; then
710 panic "Could not find any build directory under \ 715 panic "Could not find any build directory under \
711 $CHROMIUM_SRC/out. Please build the program first!" 716 $CHROMIUM_SRC/$OUT_DIR. Please build the program first!"
712 else 717 else
713 panic "Could not find any $1 directory under \ 718 panic "Could not find any $1 directory under \
714 $CHROMIUM_SRC/out. Check your build type!" 719 $CHROMIUM_SRC/$OUT_DIR. Check your build type!"
715 fi 720 fi
716 fi 721 fi
717 722
718 SYMBOL_DIR=$CHROMIUM_SRC/out/$SUBDIR 723 SYMBOL_DIR=$CHROMIUM_SRC/$OUT_DIR/$SUBDIR
719 log "Auto-config: --symbol-dir=$SYMBOL_DIR" 724 log "Auto-config: --symbol-dir=$SYMBOL_DIR"
720 } 725 }
721 726
722 if [ -z "$SYMBOL_DIR" ]; then 727 if [ -z "$SYMBOL_DIR" ]; then
723 detect_symbol_dir "$BUILDTYPE" 728 detect_symbol_dir "$BUILDTYPE"
724 fi 729 fi
725 730
726 # Allow several concurrent debugging sessions 731 # Allow several concurrent debugging sessions
727 TARGET_GDBSERVER=/data/local/tmp/gdbserver-adb-gdb-$TMP_ID 732 TARGET_GDBSERVER=/data/local/tmp/gdbserver-adb-gdb-$TMP_ID
728 733
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 964
960 if [ "$VERBOSE" -gt 0 ]; then 965 if [ "$VERBOSE" -gt 0 ]; then
961 echo "### START $COMMANDS" 966 echo "### START $COMMANDS"
962 cat $COMMANDS 967 cat $COMMANDS
963 echo "### END $COMMANDS" 968 echo "### END $COMMANDS"
964 fi 969 fi
965 970
966 log "Launching gdb client: $GDB $GDBARGS -x $COMMANDS" 971 log "Launching gdb client: $GDB $GDBARGS -x $COMMANDS"
967 $GDB $GDBARGS -x $COMMANDS && 972 $GDB $GDBARGS -x $COMMANDS &&
968 rm -f "$GDBSERVER_PIDFILE" 973 rm -f "$GDBSERVER_PIDFILE"
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698