diff options
author | Gerald Carter <jerry@samba.org> | 2005-08-03 05:46:43 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:00:23 -0500 |
commit | c731d11471ea9edd762b4cdb67bac06e77cb6f45 (patch) | |
tree | b253ad14fa6015c9860ad6aaed5b2fe800535e05 /source3/script/tests/gdb_backtrace | |
parent | 4dec112b8a99183e1dc01fd8cacad3ece85d21da (diff) | |
download | samba-c731d11471ea9edd762b4cdb67bac06e77cb6f45.tar.gz samba-c731d11471ea9edd762b4cdb67bac06e77cb6f45.tar.bz2 samba-c731d11471ea9edd762b4cdb67bac06e77cb6f45.zip |
r8990: First trivial example of 'make test'
(This used to be commit 11c886394970713a226d1fe46a4931ef97bb39a8)
Diffstat (limited to 'source3/script/tests/gdb_backtrace')
-rw-r--r-- | source3/script/tests/gdb_backtrace | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/source3/script/tests/gdb_backtrace b/source3/script/tests/gdb_backtrace new file mode 100644 index 0000000000..2ea6a4d00a --- /dev/null +++ b/source3/script/tests/gdb_backtrace @@ -0,0 +1,41 @@ +#! /bin/sh +# +# Author: Andrew Tridgell <tridge at samba dot org> + +# we want everything on stderr, so the program is not disturbed +exec 1>&2 + +BASENAME=$( basename $0) + +test -z ${GDB_BIN} && GDB_BIN=$( type -p gdb) +if [ -z ${GDB_BIN} ]; then + echo "ERROR: ${BASENAME} needs an installed gdb. " + exit 1 +fi + +if [ -z $1 ]; then + echo "ERROR: ${BASENAME} needs a PID. " + exit 1 +fi +PID=$1 + +# use /dev/shm as default temp directory +test -d /dev/shm && \ + TMP_BASE_DIR=/dev/shm || \ + TMP_BASE_DIR=/var/tmp +TMPFILE=$( mktemp -p ${TMP_BASE_DIR} backtrace.XXXXXX) +if [ $? -ne 0 ]; then + echo "ERROR: ${basename} can't create temp file in ${TMP_BASE_DIR}. " + exit 1 +fi + +cat << EOF > "${TMPFILE}" +set height 0 +up 8 +bt full +quit +EOF + +${GDB_BIN} -x "${TMPFILE}" "/proc/${PID}/exe" "${PID}" + +/bin/rm -f "${TMPFILE}" |