# Get backtraces from coredumps
if which gdb &>/dev/null; then
- {
- echo bt full
- echo l
- echo quit
- } > gdb_commands.txt
-
# Check for all cores newer then TESTNAME file
# Assume users keep prefix 'core'
# TODO: possibly better integrate with coredumpctl & systemd
while IFS= read -r i; do
bin=$(gdb -batch -c "$i" 2>&1 | grep "generated by" | \
sed -e "s,.*generated by \`\([^ ']*\).*,\1,") || continue
+ {
+ echo bt full
+ echo l
+ echo quit
+ } > gdb_commands.txt || rm -f gdb_commands.txt
+
+ if test ! -s gdb_commands.txt ; then
+ echo "Out of disk space, can't check coredump $i generated by $bin."
+ continue
+ fi
+
echo "## Checking coredump: $i generated by $bin."
gdb -batch -c "$i" -x gdb_commands.txt "$(which "$bin")" 2>/dev/null | \
sed -e "s,^,## GDB: ," || continue
echo "<======== Strace debug log ========>"
sed -e "s,^,## STRACE: ," strace.log
fi
- dmsetup info -c | grep1_ "$PREFIX" > out
- if test "$(wc -l < out)" -gt 1 ; then
+ if dmsetup info -c | grep -q "$PREFIX" ; then
echo "<======== Info ========>"
- sed -e "s,^,## DMINFO: ," out
+ dmsetup info -c | grep1_ "$PREFIX"| sed -e "s,^,## DMINFO: ,"
echo "<======== Active table ========>"
dmsetup table | grep "$PREFIX" | sed -e "s,^,## DMTABLE: ,"
echo "<======== Inactive table ========>"