r252: add backtrace to examples so people know about it (slight change from lars...
authorGerald Carter <jerry@samba.org>
Fri, 16 Apr 2004 17:49:11 +0000 (17:49 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:51:16 +0000 (10:51 -0500)
(This used to be commit c9db3da255e3b349cae8596136ee624a0482f38b)

examples/scripts/backtrace [new file with mode: 0644]

diff --git a/examples/scripts/backtrace b/examples/scripts/backtrace
new file mode 100644 (file)
index 0000000..2ea6a4d
--- /dev/null
@@ -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}"