blob: 8a74d1c101f6c5dbdb4767e7c4137400dbeb2756 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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`
PID=$1
if [ x"$PID" = x"" ]; then
echo "ERROR: ${BASENAME} needs a PID. "
exit 1
fi
test x"${GDB_BIN}" = x"" && GDB_BIN=`type -p gdb`
if [ x"${GDB_BIN}" = x"" ]; then
echo "ERROR: ${BASENAME} needs an installed gdb. "
exit 1
fi
# 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}"
|