summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.cvsignore2
-rw-r--r--ChangeLog11
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in83
-rwxr-xr-xconfigure3
-rw-r--r--configure.ac2
-rw-r--r--staprun.8.in149
-rw-r--r--systemtap.spec.in3
8 files changed, 234 insertions, 21 deletions
diff --git a/.cvsignore b/.cvsignore
index dc1c8f22..4d8dec53 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
-autom4te.* cscope*out Makefile config.h config.log config.status *.[15]
+autom4te.* cscope*out Makefile config.h config.log config.status *.[158]
.deps loc2c-test stamp-h1 stap staprun stp_check systemtap.spec testresults
diff --git a/ChangeLog b/ChangeLog
index 36a89483..f3ef353d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-02-27 David Smith <dsmith@redhat.com>
+
+ * staprun.8.in: Added a basic staprun man page.
+ * Makefile.am: Added staprun.8.
+ * Makefile.in: Regenerated.
+ * configure.ac: Added staprun.8.
+ * configure: Regenerated.
+ * systemtap.spec.in: Added staprun.8 and other document files to
+ staprun RPM.
+ * .cvsignore: Ignores staprun.8.
+
2007-02-27 Frank Ch. Eigler <fche@elastic.org>
* tapsets.cxx (dwflpp setup): Print "missing kernel debuginfo"
diff --git a/Makefile.am b/Makefile.am
index 94808fa0..09e49273 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,7 +10,7 @@ AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DPKGDATADIR='"${pkgdatadir}"' -DPKGLIBDIR=
AM_CFLAGS = -D_GNU_SOURCE -fexceptions -Wall -Wextra -Werror -Wshadow -Wunused -Wformat=2 -W
AM_CXXFLAGS = -Wall -Wextra -Werror
-dist_man_MANS = stap.1 stapprobes.5 stapfuncs.5 stapex.5 lket.5 lket-b2a.1 man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5
+dist_man_MANS = stap.1 stapprobes.5 stapfuncs.5 stapex.5 staprun.8 lket.5 lket-b2a.1 man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5
bin_PROGRAMS = stap staprun
stap_SOURCES = main.cxx \
parse.cxx staptree.cxx elaborate.cxx translate.cxx \
diff --git a/Makefile.in b/Makefile.in
index a72a7fb8..dd6fa168 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52,8 +52,8 @@ DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \
$(srcdir)/config.in $(srcdir)/lket-b2a.1.in \
$(srcdir)/lket.5.in $(srcdir)/stap.1.in $(srcdir)/stapex.5.in \
$(srcdir)/stapfuncs.5.in $(srcdir)/stapprobes.5.in \
- $(srcdir)/stp_check.in $(srcdir)/systemtap.spec.in \
- $(top_srcdir)/configure \
+ $(srcdir)/staprun.8.in $(srcdir)/stp_check.in \
+ $(srcdir)/systemtap.spec.in $(top_srcdir)/configure \
$(top_srcdir)/man/stapprobes.iosched.5.in \
$(top_srcdir)/man/stapprobes.netdev.5.in \
$(top_srcdir)/man/stapprobes.nfs.5.in \
@@ -76,7 +76,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = systemtap.spec stp_check stap.1 stapprobes.5 \
- stapfuncs.5 stapex.5 lket.5 lket-b2a.1 \
+ stapfuncs.5 stapex.5 staprun.8 lket.5 lket-b2a.1 \
man/stapprobes.iosched.5 man/stapprobes.netdev.5 \
man/stapprobes.nfs.5 man/stapprobes.nfsd.5 \
man/stapprobes.pagefault.5 man/stapprobes.process.5 \
@@ -84,7 +84,8 @@ CONFIG_CLEAN_FILES = systemtap.spec stp_check stap.1 stapprobes.5 \
man/stapprobes.signal.5 man/stapprobes.socket.5 \
man/stapprobes.tcp.5 man/stapprobes.udp.5
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" \
- "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"
+ "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
+ "$(DESTDIR)$(man8dir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_loc2c_test_OBJECTS = loc2c_test-loc2c-test.$(OBJEXT) \
@@ -128,6 +129,7 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
uninstall-recursive
man1dir = $(mandir)/man1
man5dir = $(mandir)/man5
+man8dir = $(mandir)/man8
NROFF = nroff
MANS = $(dist_man_MANS)
ETAGS = etags
@@ -247,7 +249,7 @@ pkglibexecdir = ${libexecdir}/${PACKAGE}
AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DPKGDATADIR='"${pkgdatadir}"' -DPKGLIBDIR='"$(pkglibexecdir)"'
AM_CFLAGS = -D_GNU_SOURCE -fexceptions -Wall -Wextra -Werror -Wshadow -Wunused -Wformat=2 -W
AM_CXXFLAGS = -Wall -Wextra -Werror
-dist_man_MANS = stap.1 stapprobes.5 stapfuncs.5 stapex.5 lket.5 lket-b2a.1 man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5
+dist_man_MANS = stap.1 stapprobes.5 stapfuncs.5 stapex.5 staprun.8 lket.5 lket-b2a.1 man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5
stap_SOURCES = main.cxx \
parse.cxx staptree.cxx elaborate.cxx translate.cxx \
tapsets.cxx buildrun.cxx loc2c.c hash.cxx mdfour.c \
@@ -357,6 +359,8 @@ stapfuncs.5: $(top_builddir)/config.status $(srcdir)/stapfuncs.5.in
cd $(top_builddir) && $(SHELL) ./config.status $@
stapex.5: $(top_builddir)/config.status $(srcdir)/stapex.5.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+staprun.8: $(top_builddir)/config.status $(srcdir)/staprun.8.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
lket.5: $(top_builddir)/config.status $(srcdir)/lket.5.in
cd $(top_builddir) && $(SHELL) ./config.status $@
lket-b2a.1: $(top_builddir)/config.status $(srcdir)/lket-b2a.1.in
@@ -820,6 +824,51 @@ uninstall-man5:
echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
done
+install-man8: $(man8_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
+ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 8*) ;; \
+ *) ext='8' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
+ done
+uninstall-man8:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 8*) ;; \
+ *) ext='8' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
+ rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
+ done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -1104,7 +1153,7 @@ check: $(BUILT_SOURCES)
all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -1164,7 +1213,7 @@ install-exec-am: install-binPROGRAMS install-exec-local \
install-info: install-info-recursive
-install-man: install-man1 install-man5
+install-man: install-man1 install-man5 install-man8
installcheck-am:
@@ -1192,7 +1241,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-local \
uninstall-info: uninstall-info-recursive
-uninstall-man: uninstall-man1 uninstall-man5
+uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-binPROGRAMS clean-generic clean-local \
@@ -1205,15 +1254,15 @@ uninstall-man: uninstall-man1 uninstall-man5
install-binPROGRAMS install-data install-data-am \
install-data-local install-exec install-exec-am \
install-exec-local install-info install-info-am install-man \
- install-man1 install-man5 install-pkglibexecSCRIPTS \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- maintainer-clean-recursive mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-info-am uninstall-local \
- uninstall-man uninstall-man1 uninstall-man5 \
- uninstall-pkglibexecSCRIPTS
+ install-man1 install-man5 install-man8 \
+ install-pkglibexecSCRIPTS install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am \
+ uninstall-local uninstall-man uninstall-man1 uninstall-man5 \
+ uninstall-man8 uninstall-pkglibexecSCRIPTS
@BUILD_ELFUTILS_TRUE@stamp-elfutils: config.status
@BUILD_ELFUTILS_TRUE@ $(MAKE) $(AM_MAKEFLAGS) -C build-elfutils all
diff --git a/configure b/configure
index 2e5b41f1..a50765d1 100755
--- a/configure
+++ b/configure
@@ -5978,7 +5978,7 @@ esac
ac_config_headers="$ac_config_headers config.h:config.in"
- ac_config_files="$ac_config_files Makefile systemtap.spec stp_check stap.1 stapprobes.5 stapfuncs.5 stapex.5 lket.5 lket-b2a.1 runtime/lket/b2a/Makefile testsuite/Makefile man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5"
+ ac_config_files="$ac_config_files Makefile systemtap.spec stp_check stap.1 stapprobes.5 stapfuncs.5 stapex.5 staprun.8 lket.5 lket-b2a.1 runtime/lket/b2a/Makefile testsuite/Makefile man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -6585,6 +6585,7 @@ do
"stapprobes.5" ) CONFIG_FILES="$CONFIG_FILES stapprobes.5" ;;
"stapfuncs.5" ) CONFIG_FILES="$CONFIG_FILES stapfuncs.5" ;;
"stapex.5" ) CONFIG_FILES="$CONFIG_FILES stapex.5" ;;
+ "staprun.8" ) CONFIG_FILES="$CONFIG_FILES staprun.8" ;;
"lket.5" ) CONFIG_FILES="$CONFIG_FILES lket.5" ;;
"lket-b2a.1" ) CONFIG_FILES="$CONFIG_FILES lket-b2a.1" ;;
"runtime/lket/b2a/Makefile" ) CONFIG_FILES="$CONFIG_FILES runtime/lket/b2a/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 59b7b34d..dcbf828b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,7 +130,7 @@ esac
AC_SUBST([PROCFLAGS])
AC_CONFIG_HEADERS([config.h:config.in])
-AC_CONFIG_FILES(Makefile systemtap.spec stp_check stap.1 stapprobes.5 stapfuncs.5 stapex.5 lket.5 lket-b2a.1 runtime/lket/b2a/Makefile testsuite/Makefile man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5)
+AC_CONFIG_FILES(Makefile systemtap.spec stp_check stap.1 stapprobes.5 stapfuncs.5 stapex.5 staprun.8 lket.5 lket-b2a.1 runtime/lket/b2a/Makefile testsuite/Makefile man/stapprobes.iosched.5 man/stapprobes.netdev.5 man/stapprobes.nfs.5 man/stapprobes.nfsd.5 man/stapprobes.pagefault.5 man/stapprobes.process.5 man/stapprobes.rpc.5 man/stapprobes.scsi.5 man/stapprobes.signal.5 man/stapprobes.socket.5 man/stapprobes.tcp.5 man/stapprobes.udp.5)
AC_OUTPUT
if test $build_elfutils = yes; then
diff --git a/staprun.8.in b/staprun.8.in
new file mode 100644
index 00000000..f4032309
--- /dev/null
+++ b/staprun.8.in
@@ -0,0 +1,149 @@
+.\" -*- nroff -*-
+.TH STAPRUN 8 @DATE@ "Red Hat"
+.SH NAME
+staprun \- systemtap runtime
+
+.SH SYNOPSIS
+
+.br
+.B staprun
+[
+.I OPTIONS
+]
+.I MODULE
+[
+.I MODULE-OPTIONS
+]
+
+.SH DESCRIPTION
+
+The
+.IR staprun
+program is the back-end to the Systemtap tool. It expects a kernel
+module produced by the front-end
+.I stap
+tool.
+The
+.I staprun
+must be run as root.
+.PP
+Splitting the systemtap tool into a front-end and a back-end allows a
+user to compile a systemtap script on a development machine that has
+the kernel debugging information (need to compile the script) and then
+transfer the resulting kernel module to a production machine that
+doesn't have any development tools or kernel debugging information installed.
+.PP
+This manual corresponds to version @VERSION@.
+
+.SH OPTIONS
+The systemtap translator supports the following options. Any other option
+prints a list of supported options.
+.TP
+.B \-q
+Quiet mode. Don't display trace to standard output.
+.TP
+.B \-p
+Print only. Don't log to files.
+.TP
+.B \-c CMD
+Command CMD will be run and the staprun program will exit when CMD
+does. The '_stp_target' variable will contain the pid for CMD.
+.TP
+.B \-t PID
+The '_stp_target' variable will be set to PID.
+.TP
+.\" TODO - need a better description of what this does
+.B \-d PID
+Pass the systemtap driver's PID.
+.TP
+.B \-o FILE
+Send output to FILE.
+.TP
+.B \-u USERNAME
+Run commands as USERNAME.
+.TP
+.B \-b BUFFER_SIZE
+The systemtap module will specify a buffer size.
+Setting one here will override that value. The value should be
+an integer between 1 and 64 which be assumed to be the
+buffer size in MB. That value will be per-cpu if relayfs is used.
+
+.SH ARGUMENTS
+
+.\" TODO - we probably need a better description here.
+Any additional arguments on the command line are passed to the
+module.
+
+.SH EXAMPLES
+See the
+.IR stapex (5)
+manual page for a collection of sample scripts.
+.PP
+Here is a very basic example of how to use staprun. First, use
+.I stap
+to compile a script. The
+.I stap
+program will report the pathname to the resulting module.
+.PP
+.Vb 1
+\& $ stap -p4 -e 'probe begin { printf("Hello World!\\n"); exit() }'
+.br
+\& /home/user/.systemtap/cache/85/stap_8553d83f78c_265.ko
+.PP
+Run
+.I staprun
+with the pathname to the module as an argument. The
+.IR sudo (8)
+command is used to grant root privileges.
+.PP
+.Vb 1
+\& $ sudo staprun /home/user/.systemtap/cache/85/stap_8553d83f78c_265.ko
+.br
+\& Hello World!
+
+.SH SAFETY AND SECURITY
+Systemtap is an administrative tool. It exposes kernel internal data
+structures and potentially private user information. See the
+.IR stap (1)
+manual page for more information on safety and security.
+
+.SH SEE ALSO
+.IR stap (1),
+.IR stapprobes (5),
+.IR stapfuncs (5),
+.IR stapex (5),
+.IR lket (5),
+.IR sudo (8)
+
+.SH BUGS
+There are numerous missing features and possibly numerous bugs. Use
+the Bugzilla link off of the project web page:
+.nh
+.BR http://sources.redhat.com/systemtap/ .
+.hy
+
+.SH AUTHORS
+The
+kernel-side runtime library and the user-level
+.IR staprun
+daemon was written by Martin Hunt and Tom Zanussi.
+The
+.IR stap
+translator was written by Frank Ch. Eigler and Graydon Hoare.
+Contact them
+using the public mailing list:
+.nh
+.BR <systemtap@sources.redhat.com> .
+.hy
+
+.SH ACKNOWLEDGEMENTS
+The primary probing mechanism uses IBM's
+.IR kprobes ,
+and
+.IR relayfs
+packages, which were improved and ported by IBM and Intel staff.
+The elfutils library from Ulrich Drepper and Roland McGrath is used
+to process dwarf debugging information. Many project members contributed
+to the overall design and priorities of the system, including Will Cohen,
+Jim Keniston, Vara Prasad, and Brad Chen.
+
diff --git a/systemtap.spec.in b/systemtap.spec.in
index 7befba6c..038a7c06 100644
--- a/systemtap.spec.in
+++ b/systemtap.spec.in
@@ -146,6 +146,9 @@ rm -rf ${RPM_BUILD_ROOT}
%files runtime
%defattr(-,root,root)
%{_bindir}/staprun
+%{_mandir}/man8/*
+
+%doc README AUTHORS NEWS COPYING
%changelog
* Mon Feb 26 2007 David Smith <dsmith@redhat.com> - 0.5.13-1