diff options
Diffstat (limited to 'examples/debugging/solaris-oops.sh')
-rw-r--r-- | examples/debugging/solaris-oops.sh | 52 |
1 files changed, 52 insertions, 0 deletions
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 "$@" |