diff options
-rw-r--r-- | examples/debugging/README | 28 | ||||
-rw-r--r-- | examples/debugging/solaris-oops.sh | 52 |
2 files changed, 80 insertions, 0 deletions
diff --git a/examples/debugging/README b/examples/debugging/README new file mode 100644 index 0000000000..9e336805e5 --- /dev/null +++ b/examples/debugging/README @@ -0,0 +1,28 @@ +Last update: John H Terpstra - June 27, 2005 + +Subject: This directory will contain debugging tools and tips. + +Notes: Identification and confirmation of some bugs can be difficult. + When such bugs are encountered it is necessary to provide as + sufficient detailed debugging information to assist the developer + both by providing incontrivertable proof of the problem, but also + precise information regarding the values of variables being processed + at the time the problem strikes. + + This directory is the ideal place to locate useful hints, tips and + methods that will help Samba users to provide the information that + developers need. + +============================ Solaris Method A ============================== +File: solaris-oops.sh +Contributor: David Collier-Brown +Date: June 27, 2005 +Method and Use: +To the global stanza of smb.conf add: + panic action = /usr/local/bin/solaris-oops.sh %d + +When the panic action is initiated a voluntary core dump file will be placed +in /var/tmp. Use this method with "log level = 10" and an smbd binary that +has been built with the '-g' option. +============================================================================ + diff --git a/examples/debugging/solaris-oops.sh b/examples/debugging/solaris-oops.sh new file mode 100644 index 0000000000..78c72c9508 --- /dev/null +++ b/examples/debugging/solaris-oops.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# +# oops -- capture supporting information after a failure +# +ProgName=`basename $0` + +main() { + pid=$1 + + if [ $# -lt 1 ]; then + say "$ProgName error: you must supply a pid" + say "Usage: $0 pid" + exit 1 + fi + cat <<! +State information and vountary core dump for process $pid + +Related processes were: +`/usr/bin/ptree $pid` + +Stack(s) were: +`/usr/bin/pstack $pid` + +Flags were: +`/usr/bin/pflags $pid` + +Credentials were: +`/usr/bin/pcred $pid` + +Libraries used were: +`/usr/bin/pldd $pid` + +Signal-handler settings were: +`/usr/bin/psig $pid` + +Files and devices in use were: +`/usr/bin/pfiles $pid` + +Directory in use was: +`/usr/bin/pwdx $pid` + + +A voluntary core dump was placed in /var/tmp/oops_gcore.$pid +`gcore -o /var/tmp/oops_gcore $pid`.. +! +} + +say() { + echo "$@" 1>&2 +} + +main "$@" |