From d9e1d0eb8f6f90e98297c8a34b03659820d2efb0 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Sat, 9 Oct 2004 12:16:54 +0000 Subject: [PATCH] Integrate Peter Ericksson's dbx traceback scripts into Bacula git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1640 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/scripts/Makefile.in | 3 ++- bacula/scripts/btraceback.dbx | 37 ++++++++++++++++++++++++++++++++++ bacula/scripts/btraceback.in | 38 +++++++++-------------------------- 3 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 bacula/scripts/btraceback.dbx diff --git a/bacula/scripts/Makefile.in b/bacula/scripts/Makefile.in index aa535cd18e..69656cb22c 100755 --- a/bacula/scripts/Makefile.in +++ b/bacula/scripts/Makefile.in @@ -39,6 +39,7 @@ install: installdirs $(INSTALL_SCRIPT) bacula $(DESTDIR)$(scriptdir)/bacula $(INSTALL_SCRIPT) mtx-changer $(DESTDIR)$(scriptdir)/mtx-changer $(INSTALL_DATA) btraceback.gdb $(DESTDIR)$(scriptdir)/btraceback.gdb + $(INSTALL_DATA) btraceback.dbx $(DESTDIR)$(scriptdir)/btraceback.dbx $(INSTALL_SCRIPT) btraceback $(DESTDIR)$(sbindir)/btraceback uninstall: @@ -50,7 +51,7 @@ uninstall: (cd $(DESTDIR)$(scriptdir); $(RMF) fd) (cd $(DESTDIR)$(scriptdir); $(RMF) mtx-changer) (cd $(DESTDIR)$(scriptdir); $(RMF) btraceback.gdb) - (cd $(DESTDIR)$(sbindir); $(RMF) btraceback.gdb) + (cd $(DESTDIR)$(scriptdir); $(RMF) btraceback.dbx) (cd $(DESTDIR)$(sbindir); $(RMF) btraceback) Makefile: Makefile.in diff --git a/bacula/scripts/btraceback.dbx b/bacula/scripts/btraceback.dbx new file mode 100644 index 0000000000..91a7d95a78 --- /dev/null +++ b/bacula/scripts/btraceback.dbx @@ -0,0 +1,37 @@ +# btraceback.dbx + +echo "******** RUNNING LWPS/THREADS:" +echo +lwps + +echo +echo +echo "******** STACK TRACE OF CURRENT LWP:" +echo +where + +echo +echo +echo "******** VARIABLES DUMP OF CURRENT LWP:" +echo +dump + +for LWP in 1 2 3 4 5 6 7 8; do + ( + if lwp l@$LWP; then + echo + echo + echo "******** STACK TRACE OF LWP ${LWP}:" + echo + where + + echo + echo + echo "******** VARIABLES DUMP OF LWP ${LWP}:" + echo + dump + + fi + ) +done +quit diff --git a/bacula/scripts/btraceback.in b/bacula/scripts/btraceback.in index 36be613534..07dfa29179 100755 --- a/bacula/scripts/btraceback.in +++ b/bacula/scripts/btraceback.in @@ -8,32 +8,12 @@ # $1 = path to executable # $2 = main pid of running program to be traced back. # -gdb -quiet -batch -x @scriptdir@/btraceback.gdb $1 $2 2>&1 \ - | @sbindir@/bsmtp -h @smtp_host@ -s "Bacula traceback" @dump_email@ - -# -# Below is some old code that did the traceback from a core -# dump. However, for security reasons, core dumps of uid=root -# programs 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 @scriptdir@/btraceback.gdb $1 $core 2>&1 | mail -s "Bacula traceback" @dump_email@ -#else -# gdb -quiet -batch -x @scriptdir@/btraceback.gdb $1 $2 2>&1 | mail -s "Bacula traceback" @dump_email@ -#fi +PNAME=`basname $1` +if test `uname -s` = SunOs ; then + gcore -o @working_dir@/${PNAME} $2 + dbx $1 $2 <@scriptdir@/btraceback.dbx 2>&1 \ + | @sbindir@/bsmtp -h @smtp_host@ -s "Bacula DBX traceback of ${PNAME}" @dump_email@ +else + gdb -quiet -batch -x @scriptdir@/btraceback.gdb $1 $2 2>&1 \ + | @sbindir@/bsmtp -h @smtp_host@ -s "Bacula GDB traceback of ${PNAME}" @dump_email@ +fi -- 2.39.5