X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fscripts%2Fbtraceback.in;h=1e7ae9e988117f2173bc5bcf5cb1dc2e70a71a3b;hb=31bafb3d475f4a435c98de7dcc68e9ec71efeb68;hp=bc9d87c67b427d5b7316a2b13816e65dd1c1d68f;hpb=ecafe729920ea0a539a8f47711c3cd06407b87a7;p=bacula%2Fbacula diff --git a/bacula/scripts/btraceback.in b/bacula/scripts/btraceback.in index bc9d87c67b..1e7ae9e988 100755 --- a/bacula/scripts/btraceback.in +++ b/bacula/scripts/btraceback.in @@ -7,32 +7,18 @@ # Arguments to this script are # $1 = path to executable # $2 = main pid of running program to be traced back. +# $3 = working directory # -gdb -quiet -batch -x @sbindir@/btraceback.gdb $1 $2 2>&1 \ - | @sbindir@/smtp -h @smtp_host@ -s "Bacula traceback" @dump_email@ - -# Below is some old code that did the traceback from a core -# dump. However, for some odd reason, core dumps are not -# always produced. -#i=0 -#core= -#echo "In modified btraceback" -#echo "$1 $2" -#pwd -#while [ "$i" -lt 60 ] ; do -# if [ -f core ] ; then -# break; -# fi -# if [ -f core.$2 ] ; then -# core=core.$2 -# break -# fi -# sleep 1 -# i=`expr $i + 1` -#done - -#if test x$core != x; then -# gdb -quiet -batch -x @sbindir@/btraceback.gdb $1 $core 2>&1 | mail -s "Bacula traceback" @dump_email@ -#else -# gdb -quiet -batch -x @sbindir@/btraceback.gdb $1 $2 2>&1 | mail -s "Bacula traceback" @dump_email@ -#fi +PNAME=`basename $1` +PNAME="${PNAME} on `hostname`" +WD="$3" +if test `uname -s` = SunOS ; then + gcore -o ${WD}/${PNAME} $2 + dbx $1 $2 <@scriptdir@/btraceback.dbx >${WD}/bacula.$2.traceback 2>&1 + cat ${WD}/bacula.$2.traceback \ + | @sbindir@/bsmtp -h @smtp_host@ -f @dump_email@ -s "Bacula DBX traceback of ${PNAME}" @dump_email@ +else + gdb -quiet -batch -x @scriptdir@/btraceback.gdb $1 $2 >${WD}/bacula.$2.traceback 2>&1 + cat ${WD}/bacula.$2.traceback \ + | @sbindir@/bsmtp -h @smtp_host@ -f @dump_email@ -s "Bacula GDB traceback of ${PNAME}" @dump_email@ +fi