]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix system test backtrace generation on OpenBSD
authorMichal Nowak <mnowak@isc.org>
Mon, 19 Oct 2020 11:33:32 +0000 (13:33 +0200)
committerMichal Nowak <mnowak@isc.org>
Mon, 26 Oct 2020 14:01:52 +0000 (15:01 +0100)
On Linux core dump contains absolute path to crashed binary

    Core was generated by `/home/newman/isc/ws/bind9/bin/named/.libs/lt-named -D glue-ns1 -X named.lock -m'.

However, on OpenBSD there's only a basename

    Core was generated by `named'.

This commit adds support for the latter, retains the former.

(cherry picked from commit f0b13873a3efd873c4b070fc2a0fedcbf7a9dc31)

bin/tests/system/run.sh

index 0a26d2009da3d01e2bd3fbc4eba9f185505b8881..185bc55a8bf83f714ed06f7d431ba39fb04e6f72 100755 (executable)
@@ -272,13 +272,16 @@ if [ -n "$core_dumps" ]; then
         SYSTESTDIR="$systest"
         echoinfo "D:$systest:backtrace from $coredump:"
         echoinfo "D:$systest:--------------------------------------------------------------------------------"
-        binary=$(gdb --batch --core="$coredump" 2>/dev/null | sed -ne "s/Core was generated by \`//;s/ .*'.$//p;")
+        binary=$(gdb --batch --core="$coredump" 2>/dev/null | sed -ne "s|Core was generated by \`\([^' ]*\)[' ].*|\1|p")
+        if [ ! -f "${binary}" ]; then
+            binary=$(find "${TOP}" -path "*/.libs/${binary}" -type f)
+        fi
         "${TOP}/libtool" --mode=execute gdb \
-                                 -batch \
-                                 -ex bt \
-                                 -core="$coredump" \
-                                 -- \
-                                 "$binary" 2>/dev/null | sed -n '/^Core was generated by/,$p' | cat_d
+                                  -batch \
+                                  -ex bt \
+                                  -core="$coredump" \
+                                  -- \
+                                  "$binary" 2>/dev/null | sed -n '/^Core was generated by/,$p' | cat_d
         echoinfo "D:$systest:--------------------------------------------------------------------------------"
         coredump_backtrace=$(basename "${coredump}")-backtrace.txt
         echoinfo "D:$systest:full backtrace from $coredump saved in $coredump_backtrace"