12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env bash
- set -eu
- . common
- set -- ${cli_rungdb_user:-} "$@"
- usage="$0 <exec-relative-path> [<brk-symbol>]"
- gem5_opt=
- while getopts a:gh OPT; do
- case "$OPT" in
- a)
- arch="$OPTARG"
- ;;
- g)
- gem5=true
- gem5_opt=-g
- ;;
- h)
- echo "$usage"
- exit 0
- ;;
- ?)
- exit 2
- ;;
- esac
- done
- shift "$(($OPTIND - 1))"
- executable_rel="$1"
- shift
- if [ "$#" -gt 0 ]; then
- brk="'$1'"
- shift
- else
- brk=
- fi
- set_common_vars "$arch" "$gem5"
- executable="${build_dir}/${executable_rel}"
- addr="$("${root_dir}/runtc" readelf -h "$executable" | awk '/Entry/{ print $NF }' )"
- ex="-ex \"add-symbol-file $executable $addr\""
- # -L or else lx-symbols throws for arm:
- # gdb.MemoryError: Cannot access memory at address 0xbf0040cc
- # TODO understand better.
- #
- # Also, lx-symbols overrides the add-symbol-file commands.
- cmd="./rungdb -a '${arch}' -b '${ex}' ${gem5_opt} -L ${brk}"
- echo "$cmd"
- eval "$cmd"
|