Files
linux-kernel-module-cheat/rungdb-user
Ciro Santilli 6e9f3dcf23 Document gem5 userland debugging
This lead to an infinite chaing of refactorings:

Fix arm and aarch64 lx-symbols

This was just by chance, a continue GDB command was needed before running it.

I noticed that there is no more need for the x86 GDB --ex 'set arch i386:x86-64:intel'
thing and unified all archs. TODO bisect where that was fixed and understand why.

Add debug kernel configs for gem5 kernel.

Document gem5 aarch64 gdb debug doesn't work.

Document tmux split pane action.
2018-03-23 20:55:26 +00:00

45 lines
951 B
Bash
Executable File

#!/usr/bin/env bash
set -eu
. common
usage="$0 <exec-relative-path> [<brk-symbol>]"
arch='x86_64'
gem5=false
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
;;
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="${out_dir}/build/${executable_rel}"
readelf="${out_dir}/host/usr/bin/${arch}-linux-readelf"
addr="$("$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"