summaryrefslogtreecommitdiffstats
path: root/examples/scripts/debugging/solaris/solaris-oops.sh
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scripts/debugging/solaris/solaris-oops.sh')
-rw-r--r--examples/scripts/debugging/solaris/solaris-oops.sh57
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 "$@"