mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
a329b70e15
(This used to be commit c9db3da255
)
42 lines
800 B
Bash
42 lines
800 B
Bash
#! /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}"
|