Blob Blame History Raw
#!/bin/sh

# `kyua debug` command does not work with libtool (see
# https://github.com/jmmv/kyua/issues/207).  On some distributions `kyua debug`
# runs the first `gdb` it finds in $PATH, but on Debian and Ubuntu it looks for
# `/usr/bin/gdb`.  This script expects `gdb` to be moved to `gdb.orig` and
# executed from there.
coredump="$6"
binary=$(gdb.orig --batch --core="${coredump}" 2>/dev/null | sed -ne "s/Core was generated by \`\(.*\)'./\1/p")
# GDB 6.3 from OpenBSD 6.6 does not tell the full path of the broken binary.
# We need to fix it. Either the binary or it's libtool script will do.
if [ ! -e "${binary}" ]; then
       binary="$(find "${TOP}" -name "${binary}" | head -n 1)"
fi

# $TOP points to BIND sources and should be set on `kyua debug` invocation.
"${TOP}/libtool" --mode=execute gdb.orig \
	--batch \
	--command="${TOP}/bin/tests/system/run.gdb" \
	--core="${coredump}" \
	-- \
	"${binary}"