All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] testsuite: get stacktrace if test drops core
@ 2010-03-16 20:44 Mike Snitzer
  2010-03-16 21:22 ` Mike Snitzer
  2010-03-17 10:07 ` [PATCH] " Petr Rockai
  0 siblings, 2 replies; 4+ messages in thread
From: Mike Snitzer @ 2010-03-16 20:44 UTC (permalink / raw)
  To: lvm-devel

Requires lvm be built with debugging (-g).
Also requires ulimit -c be non-zero (to drop core file).

diff --git a/test/test-utils.sh b/test/test-utils.sh
index 6606c56..06b9636 100644
--- a/test/test-utils.sh
+++ b/test/test-utils.sh
@@ -24,6 +24,21 @@ STACKTRACE() {
 		echo "$i ${FUNC}() called from ${BASH_SOURCE[$i]}:${BASH_LINENO[$i]}"
 		i=$(($i + 1));
 	done
+
+	# Attempt to get a stacktrace if a core file exists
+	# and the lvm binary was built with debugging
+	TEST_LVM_BINARY=$(dirname $(which lvm))/../../tools/lvm
+	TEST_LVM_CORE=`ls core* | head -1`
+	GDB_BINARY=`which gdb`
+	READELF_BINARY=`which readelf`
+	if [ -n "$TEST_LVM_CORE" -a -n "$GDB_BINARY" -a -n "$READELF_BINARY" ]; then
+		if $READELF_BINARY -S $TEST_LVM_BINARY 2>&1 | grep -q .debug_info; then
+			echo bt > gdb_commands.txt
+			echo l >> gdb_commands.txt
+			echo quit >> gdb_commands.txt
+			$GDB_BINARY -batch -c $TEST_LVM_CORE -x gdb_commands.txt $TEST_LVM_BINARY
+		fi
+	fi
 }
 
 init_udev_transaction() {



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-03-17 14:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-16 20:44 [PATCH] testsuite: get stacktrace if test drops core Mike Snitzer
2010-03-16 21:22 ` Mike Snitzer
2010-03-17 10:07 ` [PATCH] " Petr Rockai
2010-03-17 14:30   ` Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.