summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/debugging/README28
-rw-r--r--examples/debugging/solaris-oops.sh52
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 "$@"