diff options
Diffstat (limited to 'examples/scripts/debugging/solaris/solaris-oops.sh')
-rw-r--r-- | examples/scripts/debugging/solaris/solaris-oops.sh | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/scripts/debugging/solaris/solaris-oops.sh b/examples/scripts/debugging/solaris/solaris-oops.sh new file mode 100644 index 0000000..2d8587d --- /dev/null +++ b/examples/scripts/debugging/solaris/solaris-oops.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# +# solaris_panic_action -- capture supporting information after a failure +# +ProgName=$(basename $0) +LOGDIR=/usr/local/samba/var + +main() +{ + pid=$1 + + if [ $# -lt 1 ]; then + say "$ProgName error: you must supply a pid" + say "Usage: $0 pid" + exit 1 + fi + cat >>$LOGDIR/log.solaris_panic_action <<! + +$(date) +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/samba_solaris_panic_action_gcore.$pid +$(gcore -o /var/tmp/samba_solaris_panic_action_gcore $pid) +! +} + +say() +{ + echo "$@" 1>&2 +} + +main "$@" |