diff options
author | Jan Janssen <medhefgo@web.de> | 2023-02-28 17:44:05 +0100 |
---|---|---|
committer | Jan Janssen <medhefgo@web.de> | 2023-03-10 11:41:08 +0100 |
commit | c4ad9b23cafd67e87abbcdcb186db470a5a487e4 (patch) | |
tree | 4c67c539749c8dfe1653173793644a6181b015e0 /tools/debug-sd-boot.sh | |
parent | boot: Bring back bootloader builds (diff) | |
download | systemd-c4ad9b23cafd67e87abbcdcb186db470a5a487e4.tar.xz systemd-c4ad9b23cafd67e87abbcdcb186db470a5a487e4.zip |
boot: Fix debug experience
Diffstat (limited to 'tools/debug-sd-boot.sh')
-rwxr-xr-x | tools/debug-sd-boot.sh | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/tools/debug-sd-boot.sh b/tools/debug-sd-boot.sh index b087c1d4d5..0420dbdab7 100755 --- a/tools/debug-sd-boot.sh +++ b/tools/debug-sd-boot.sh @@ -51,19 +51,17 @@ case "${BASH_REMATCH[1]}" in exit 1 esac -# system-boot will print out a line like this to inform us where gdb is supposed to -# look for .text and .data section: -# systemd-boot@0x0,0x0 +# system-boot/stub will print out a line like this to inform us where it was loaded: +# systemd-boot@0xC0DE while read -r line; do - if [[ "${line}" =~ ${target}@(0x[[:xdigit:]]+),(0x[[:xdigit:]]+) ]]; then - text="${BASH_REMATCH[1]}" - data="${BASH_REMATCH[2]}" + if [[ "${line}" =~ ${target}@(0x[[:xdigit:]]+) ]]; then + loaded_base="${BASH_REMATCH[1]}" break fi done <"${2}" -if [[ -z "${text}" || -z "${data}" ]]; then - echo "Could not determine text and data location." +if [[ -z "${loaded_base}" ]]; then + echo "Could not determine loaded image base." exit 1 fi @@ -76,8 +74,8 @@ fi cat >"${gdb_script}" <<EOF file ${binary} -add-symbol-file ${symbols} ${text} -s .data ${data} -set architecture ${arch}" +symbol-file ${symbols} -o ${loaded_base} +set architecture ${arch} EOF if [[ -z "${3}" ]]; then |