summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-06-08 11:39:03 -0400
committerDave Brolley <brolley@redhat.com>2009-06-08 11:39:03 -0400
commit38920545284c0c93d43ad004090d975189620869 (patch)
tree5b081749d306e63d4f2d4629e4090abaf8edb955
parent47ae66621bf70ec33103ba4b62b5455f957c905a (diff)
parenta77245e55075e1b756b51a5226483fe5e618940e (diff)
downloadsystemtap-steved-38920545284c0c93d43ad004090d975189620869.tar.gz
systemtap-steved-38920545284c0c93d43ad004090d975189620869.tar.xz
systemtap-steved-38920545284c0c93d43ad004090d975189620869.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
-rw-r--r--Makefile.am42
-rw-r--r--Makefile.in241
-rw-r--r--aclocal.m444
-rw-r--r--config.in12
-rwxr-xr-xconfigure47
-rw-r--r--configure.ac11
-rw-r--r--doc/Makefile.in8
-rw-r--r--doc/SystemTap_Tapset_Reference/Makefile.in8
-rw-r--r--grapher/Makefile.in8
-rw-r--r--testsuite/systemtap.examples/index.html3
-rw-r--r--testsuite/systemtap.examples/index.txt8
-rw-r--r--testsuite/systemtap.examples/io/ttyspy.meta6
-rwxr-xr-xtestsuite/systemtap.examples/io/ttyspy.stp46
-rw-r--r--testsuite/systemtap.examples/keyword-index.html20
-rw-r--r--testsuite/systemtap.examples/keyword-index.txt36
15 files changed, 376 insertions, 164 deletions
diff --git a/Makefile.am b/Makefile.am
index f11c24c9..ad70f9f4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,8 +12,7 @@ AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DSYSCONFDIR='"$(sysconfdir)"' -DPKGDATADIR
AM_CFLAGS = -D_GNU_SOURCE -fexceptions -Wall -Werror -Wunused -Wformat=2 -W
AM_CXXFLAGS = -Wall -Werror
-man_MANS = stap.1 \
-stapprobes.3stap stapfuncs.3stap stapvars.3stap stapex.3stap \
+man_MANS = stapprobes.3stap stapfuncs.3stap stapvars.3stap stapex.3stap \
staprun.8 \
man/stapprobes.iosched.3stap man/stapprobes.netdev.3stap \
man/stapprobes.nfs.3stap man/stapprobes.nfsd.3stap \
@@ -23,9 +22,15 @@ man/stapprobes.signal.3stap man/stapprobes.socket.3stap \
man/stapprobes.tcp.3stap man/stapprobes.udp.3stap
# see also configure.ac
-bin_PROGRAMS = stap staprun
+bin_PROGRAMS = staprun
bin_SCRIPTS = stap-report stap-env stap-gen-cert stap-authorize-cert stap-authorize-signing-cert
oldinclude_HEADERS = includes/sys/sdt.h
+
+if BUILD_TRANSLATOR
+bin_PROGRAMS += stap
+man_MANS += stap.1
+bin_SCRIPTS += dtrace
+
if BUILD_SERVER
man_MANS += stap-server.8
bin_PROGRAMS += stap-client-connect stap-server-connect
@@ -33,7 +38,7 @@ bin_SCRIPTS += stap-client stap-serverd stap-server stap-find-servers \
stap-start-server stap-find-or-start-server stap-stop-server \
stap-authorize-server-cert
endif
-bin_SCRIPTS += dtrace
+
stap_SOURCES = main.cxx \
parse.cxx staptree.cxx elaborate.cxx translate.cxx \
tapsets.cxx buildrun.cxx loc2c.c hash.cxx mdfour.c \
@@ -42,10 +47,11 @@ stap_SOURCES = main.cxx \
tapset-perfmon.cxx tapset-mark.cxx tapset-itrace.cxx \
tapset-utrace.cxx task_finder.cxx dwflpp.cxx rpm_finder.cxx
stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ @rpm_LIBS@
+stap_DEPENDENCIES =
+endif
BUILT_SOURCES =
CLEANFILES =
-stap_DEPENDENCIES =
# Arrange for git_version.h to be regenerated at every "make".
# Code fragment is based upon RadeonHD.am.
@@ -83,7 +89,8 @@ cscope:
(echo -q ; git ls-files '*.cxx' '*.c' '*.h' | grep -v '^testsuite' ) > cscope.files && \
cscope -b -q
-
+PHONIES =
+if BUILD_TRANSLATOR
stap_CFLAGS = $(AM_CFLAGS) @PIECFLAGS@
stap_CXXFLAGS = $(AM_CXXFLAGS) @PIECXXFLAGS@
stap_CPPFLAGS = $(AM_CPPFLAGS)
@@ -98,7 +105,6 @@ stap_client_connect_LDFLAGS = $(AM_LDFLAGS)
stap_server_connect_LDFLAGS = $(AM_LDFLAGS)
endif
-PHONIES =
if BUILD_ELFUTILS
stap_CPPFLAGS += -Iinclude-elfutils
stap_LDFLAGS += -Llib-elfutils -Wl,-rpath-link,lib-elfutils \
@@ -135,6 +141,7 @@ install-scripts: install-binSCRIPTS
sed -i -e "/INSTALL-HOOK/d;s,exec_prefix=.*,exec_prefix=$(exec_prefix)/bin/,;s,sysconfdir=.*,sysconfdir=$(sysconfdir)," $(DESTDIR)$(bindir)/$$f; \
done
endif
+endif
staprun_SOURCES = runtime/staprun/staprun.c runtime/staprun/staprun_funcs.c\
runtime/staprun/ctl.c runtime/staprun/common.c
@@ -158,15 +165,6 @@ stapio_CFLAGS = @PROCFLAGS@ $(AM_CFLAGS) @PIECFLAGS@ -fno-strict-aliasing -fno-b
stapio_LDFLAGS = $(AM_LDFLAGS) @PIELDFLAGS@
stapio_LDADD = @PROCFLAGS@ -lpthread
-if BUILD_SERVER
-stap_client_connect_SOURCES = stap-client-connect.c
-stap_client_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
-stap_client_connect_LDADD = -lssl3
-
-stap_server_connect_SOURCES = stap-server-connect.c
-stap_server_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
-stap_server_connect_LDADD = -lssl3
-endif
install-exec-hook:
if [ `id -u` -eq 0 ]; then chmod 04111 "$(DESTDIR)$(bindir)/staprun"; fi
@@ -178,12 +176,24 @@ install-exec-hook:
pkglibexec_PROGRAMS = stapio
CLEANFILES += $(pkglibexec_PROGRAMS)
+if BUILD_TRANSLATOR
+if BUILD_SERVER
+stap_client_connect_SOURCES = stap-client-connect.c
+stap_client_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
+stap_client_connect_LDADD = -lssl3
+
+stap_server_connect_SOURCES = stap-server-connect.c
+stap_server_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
+stap_server_connect_LDADD = -lssl3
+endif
+
noinst_PROGRAMS = loc2c-test
loc2c_test_SOURCES = loc2c-test.c loc2c.c
loc2c_test_CFLAGS = $(stap_CFLAGS)
loc2c_test_CPPFLAGS = $(stap_CPPFLAGS)
loc2c_test_LDFLAGS = $(stap_LDFLAGS)
loc2c_test_LDADD = $(stap_LDADD)
+endif
# crash(8) extension
if BUILD_CRASHMOD
diff --git a/Makefile.in b/Makefile.in
index c8a5d713..a3789c6c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -34,30 +34,33 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-bin_PROGRAMS = stap$(EXEEXT) staprun$(EXEEXT) $(am__EXEEXT_1)
-@BUILD_SERVER_TRUE@am__append_1 = stap-server.8
-@BUILD_SERVER_TRUE@am__append_2 = stap-client-connect stap-server-connect
-@BUILD_SERVER_TRUE@am__append_3 = stap-client stap-serverd stap-server stap-find-servers \
-@BUILD_SERVER_TRUE@ stap-start-server stap-find-or-start-server stap-stop-server \
-@BUILD_SERVER_TRUE@ stap-authorize-server-cert
-
-@HAVE_NSS_TRUE@am__append_4 = modsign.cxx nsscommon.c
-@HAVE_NSS_TRUE@am__append_5 = $(nss_CFLAGS) $(nspr_CFLAGS)
-@HAVE_NSS_TRUE@am__append_6 = -lnss3
-@BUILD_ELFUTILS_TRUE@am__append_7 = -Iinclude-elfutils
-@BUILD_ELFUTILS_TRUE@am__append_8 = -Llib-elfutils -Wl,-rpath-link,lib-elfutils \
-@BUILD_ELFUTILS_TRUE@ -Wl,--enable-new-dtags,-rpath,$(pkglibdir)
-
-@BUILD_ELFUTILS_TRUE@am__append_9 = stamp-elfutils
-@BUILD_ELFUTILS_TRUE@am__append_10 = stamp-elfutils
-@BUILD_ELFUTILS_TRUE@am__append_11 = lib-elfutils/libdw.so
-@BUILD_ELFUTILS_TRUE@am__append_12 = install-elfutils
-@BUILD_SERVER_TRUE@am__append_13 = install-scripts
-@HAVE_NSS_TRUE@am__append_14 = runtime/staprun/modverify.c nsscommon.c
-@HAVE_NSS_TRUE@am__append_15 = $(nss_CFLAGS) $(nspr_CFLAGS)
-@HAVE_NSS_TRUE@am__append_16 = -lnss3
+bin_PROGRAMS = staprun$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
+@BUILD_TRANSLATOR_TRUE@am__append_1 = stap
+@BUILD_TRANSLATOR_TRUE@am__append_2 = stap.1
+@BUILD_TRANSLATOR_TRUE@am__append_3 = dtrace
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_4 = stap-server.8
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_5 = stap-client-connect stap-server-connect
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_6 = stap-client stap-serverd stap-server stap-find-servers \
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@ stap-start-server stap-find-or-start-server stap-stop-server \
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@ stap-authorize-server-cert
+
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@am__append_7 = modsign.cxx nsscommon.c
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@am__append_8 = $(nss_CFLAGS) $(nspr_CFLAGS)
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@am__append_9 = -lnss3
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_10 = -Iinclude-elfutils
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_11 = -Llib-elfutils -Wl,-rpath-link,lib-elfutils \
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ -Wl,--enable-new-dtags,-rpath,$(pkglibdir)
+
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_12 = stamp-elfutils
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_13 = stamp-elfutils
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_14 = lib-elfutils/libdw.so
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_15 = install-elfutils
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am__append_16 = install-scripts
+@HAVE_NSS_TRUE@am__append_17 = runtime/staprun/modverify.c nsscommon.c
+@HAVE_NSS_TRUE@am__append_18 = $(nss_CFLAGS) $(nspr_CFLAGS)
+@HAVE_NSS_TRUE@am__append_19 = -lnss3
pkglibexec_PROGRAMS = stapio$(EXEEXT)
-noinst_PROGRAMS = loc2c-test$(EXEEXT)
+@BUILD_TRANSLATOR_TRUE@noinst_PROGRAMS = loc2c-test$(EXEEXT)
subdir = .
DIST_COMMON = INSTALL NEWS README AUTHORS $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -96,8 +99,9 @@ CONFIG_CLEAN_FILES = stap.1 stapprobes.3stap stapfuncs.3stap \
man/stapprobes.signal.3stap man/stapprobes.socket.3stap \
man/stapprobes.tcp.3stap man/stapprobes.udp.3stap \
initscript/systemtap run-stap run-staprun
-@BUILD_SERVER_TRUE@am__EXEEXT_1 = stap-client-connect$(EXEEXT) \
-@BUILD_SERVER_TRUE@ stap-server-connect$(EXEEXT)
+@BUILD_TRANSLATOR_TRUE@am__EXEEXT_1 = stap$(EXEEXT)
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am__EXEEXT_2 = stap-client-connect$(EXEEXT) \
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@ stap-server-connect$(EXEEXT)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" \
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
"$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man8dir)" \
@@ -105,37 +109,53 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" \
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
pkglibexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(pkglibexec_PROGRAMS)
-am_loc2c_test_OBJECTS = loc2c_test-loc2c-test.$(OBJEXT) \
- loc2c_test-loc2c.$(OBJEXT)
+@BUILD_TRANSLATOR_TRUE@am_loc2c_test_OBJECTS = \
+@BUILD_TRANSLATOR_TRUE@ loc2c_test-loc2c-test.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ loc2c_test-loc2c.$(OBJEXT)
loc2c_test_OBJECTS = $(am_loc2c_test_OBJECTS)
am__DEPENDENCIES_1 =
-am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
-loc2c_test_DEPENDENCIES = $(am__DEPENDENCIES_2)
+@BUILD_TRANSLATOR_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+@BUILD_TRANSLATOR_TRUE@loc2c_test_DEPENDENCIES = \
+@BUILD_TRANSLATOR_TRUE@ $(am__DEPENDENCIES_2)
loc2c_test_LINK = $(CCLD) $(loc2c_test_CFLAGS) $(CFLAGS) \
$(loc2c_test_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_NSS_TRUE@am__objects_1 = stap-modsign.$(OBJEXT) \
-@HAVE_NSS_TRUE@ stap-nsscommon.$(OBJEXT)
-am_stap_OBJECTS = stap-main.$(OBJEXT) stap-parse.$(OBJEXT) \
- stap-staptree.$(OBJEXT) stap-elaborate.$(OBJEXT) \
- stap-translate.$(OBJEXT) stap-tapsets.$(OBJEXT) \
- stap-buildrun.$(OBJEXT) stap-loc2c.$(OBJEXT) \
- stap-hash.$(OBJEXT) stap-mdfour.$(OBJEXT) stap-cache.$(OBJEXT) \
- stap-util.$(OBJEXT) stap-coveragedb.$(OBJEXT) \
- stap-dwarf_wrappers.$(OBJEXT) stap-tapset-been.$(OBJEXT) \
- stap-tapset-procfs.$(OBJEXT) stap-tapset-timers.$(OBJEXT) \
- stap-tapset-perfmon.$(OBJEXT) stap-tapset-mark.$(OBJEXT) \
- stap-tapset-itrace.$(OBJEXT) stap-tapset-utrace.$(OBJEXT) \
- stap-task_finder.$(OBJEXT) stap-dwflpp.$(OBJEXT) \
- stap-rpm_finder.$(OBJEXT) $(am__objects_1)
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@am__objects_1 = \
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@ stap-modsign.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@ stap-nsscommon.$(OBJEXT)
+@BUILD_TRANSLATOR_TRUE@am_stap_OBJECTS = stap-main.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-parse.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-staptree.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-elaborate.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-translate.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapsets.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-buildrun.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-loc2c.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-hash.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-mdfour.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-cache.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-util.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-coveragedb.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-dwarf_wrappers.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-been.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-procfs.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-timers.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-perfmon.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-mark.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-itrace.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-tapset-utrace.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-task_finder.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-dwflpp.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ stap-rpm_finder.$(OBJEXT) \
+@BUILD_TRANSLATOR_TRUE@ $(am__objects_1)
stap_OBJECTS = $(am_stap_OBJECTS)
stap_LINK = $(CXXLD) $(stap_CXXFLAGS) $(CXXFLAGS) $(stap_LDFLAGS) \
$(LDFLAGS) -o $@
-@BUILD_SERVER_TRUE@am_stap_client_connect_OBJECTS = stap_client_connect-stap-client-connect.$(OBJEXT)
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am_stap_client_connect_OBJECTS = stap_client_connect-stap-client-connect.$(OBJEXT)
stap_client_connect_OBJECTS = $(am_stap_client_connect_OBJECTS)
stap_client_connect_DEPENDENCIES =
stap_client_connect_LINK = $(CCLD) $(stap_client_connect_CFLAGS) \
$(CFLAGS) $(stap_client_connect_LDFLAGS) $(LDFLAGS) -o $@
-@BUILD_SERVER_TRUE@am_stap_server_connect_OBJECTS = stap_server_connect-stap-server-connect.$(OBJEXT)
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@am_stap_server_connect_OBJECTS = stap_server_connect-stap-server-connect.$(OBJEXT)
stap_server_connect_OBJECTS = $(am_stap_server_connect_OBJECTS)
stap_server_connect_DEPENDENCIES =
stap_server_connect_LINK = $(CCLD) $(stap_server_connect_CFLAGS) \
@@ -322,25 +342,30 @@ pkglibexecdir = ${libexecdir}/${PACKAGE}
AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DSYSCONFDIR='"$(sysconfdir)"' -DPKGDATADIR='"${pkgdatadir}"' -DPKGLIBDIR='"$(pkglibexecdir)"'
AM_CFLAGS = -D_GNU_SOURCE -fexceptions -Wall -Werror -Wunused -Wformat=2 -W
AM_CXXFLAGS = -Wall -Werror
-man_MANS = stap.1 stapprobes.3stap stapfuncs.3stap stapvars.3stap \
+man_MANS = stapprobes.3stap stapfuncs.3stap stapvars.3stap \
stapex.3stap staprun.8 man/stapprobes.iosched.3stap \
man/stapprobes.netdev.3stap man/stapprobes.nfs.3stap \
man/stapprobes.nfsd.3stap man/stapprobes.pagefault.3stap \
man/stapprobes.kprocess.3stap man/stapprobes.rpc.3stap \
man/stapprobes.scsi.3stap man/stapprobes.signal.3stap \
man/stapprobes.socket.3stap man/stapprobes.tcp.3stap \
- man/stapprobes.udp.3stap $(am__append_1)
+ man/stapprobes.udp.3stap $(am__append_2) $(am__append_4)
bin_SCRIPTS = stap-report stap-env stap-gen-cert stap-authorize-cert \
- stap-authorize-signing-cert $(am__append_3) dtrace
+ stap-authorize-signing-cert $(am__append_3) $(am__append_6)
oldinclude_HEADERS = includes/sys/sdt.h
-stap_SOURCES = main.cxx parse.cxx staptree.cxx elaborate.cxx \
- translate.cxx tapsets.cxx buildrun.cxx loc2c.c hash.cxx \
- mdfour.c cache.cxx util.cxx coveragedb.cxx dwarf_wrappers.cxx \
- tapset-been.cxx tapset-procfs.cxx tapset-timers.cxx \
- tapset-perfmon.cxx tapset-mark.cxx tapset-itrace.cxx \
- tapset-utrace.cxx task_finder.cxx dwflpp.cxx rpm_finder.cxx \
- $(am__append_4)
-stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ @rpm_LIBS@ $(am__append_6)
+@BUILD_TRANSLATOR_TRUE@stap_SOURCES = main.cxx parse.cxx staptree.cxx \
+@BUILD_TRANSLATOR_TRUE@ elaborate.cxx translate.cxx tapsets.cxx \
+@BUILD_TRANSLATOR_TRUE@ buildrun.cxx loc2c.c hash.cxx mdfour.c \
+@BUILD_TRANSLATOR_TRUE@ cache.cxx util.cxx coveragedb.cxx \
+@BUILD_TRANSLATOR_TRUE@ dwarf_wrappers.cxx tapset-been.cxx \
+@BUILD_TRANSLATOR_TRUE@ tapset-procfs.cxx tapset-timers.cxx \
+@BUILD_TRANSLATOR_TRUE@ tapset-perfmon.cxx tapset-mark.cxx \
+@BUILD_TRANSLATOR_TRUE@ tapset-itrace.cxx tapset-utrace.cxx \
+@BUILD_TRANSLATOR_TRUE@ task_finder.cxx dwflpp.cxx \
+@BUILD_TRANSLATOR_TRUE@ rpm_finder.cxx $(am__append_7)
+@BUILD_TRANSLATOR_TRUE@stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ \
+@BUILD_TRANSLATOR_TRUE@ @rpm_LIBS@ $(am__append_9)
+@BUILD_TRANSLATOR_TRUE@stap_DEPENDENCIES = $(am__append_14)
# Arrange for git_version.h to be regenerated at every "make".
# Code fragment is based upon RadeonHD.am.
@@ -350,26 +375,27 @@ stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ @rpm_LIBS@ $(am__append_6)
# of foo-bar.c if it is newer than the foo-bar.o file. Using noinst_foo_SOURCES
# instead of foo_SOURCES prevents shipping git_version.h in dist tarballs,
# which may cause false GIT_FOO readings.
-BUILT_SOURCES = git_version.stamp $(am__append_9)
-CLEANFILES = git_version.h $(am__append_10) $(pkglibexec_PROGRAMS)
-stap_DEPENDENCIES = $(am__append_11)
+BUILT_SOURCES = git_version.stamp $(am__append_12)
+CLEANFILES = git_version.h $(am__append_13) $(pkglibexec_PROGRAMS)
GIT_VERSION_CMD = $(SHELL) $(top_srcdir)/git_version.sh
-stap_CFLAGS = $(AM_CFLAGS) @PIECFLAGS@
-stap_CXXFLAGS = $(AM_CXXFLAGS) @PIECXXFLAGS@
-stap_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_5) $(am__append_7)
-stap_LDFLAGS = $(AM_LDFLAGS) @PIELDFLAGS@ $(am__append_8)
-@HAVE_NSS_TRUE@stap_client_connect_LDFLAGS = $(AM_LDFLAGS)
-@HAVE_NSS_TRUE@stap_server_connect_LDFLAGS = $(AM_LDFLAGS)
-PHONIES = $(am__append_12) $(am__append_13) dist-gzip
+PHONIES = $(am__append_15) $(am__append_16) dist-gzip
+@BUILD_TRANSLATOR_TRUE@stap_CFLAGS = $(AM_CFLAGS) @PIECFLAGS@
+@BUILD_TRANSLATOR_TRUE@stap_CXXFLAGS = $(AM_CXXFLAGS) @PIECXXFLAGS@
+@BUILD_TRANSLATOR_TRUE@stap_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_8) \
+@BUILD_TRANSLATOR_TRUE@ $(am__append_10)
+@BUILD_TRANSLATOR_TRUE@stap_LDFLAGS = $(AM_LDFLAGS) @PIELDFLAGS@ \
+@BUILD_TRANSLATOR_TRUE@ $(am__append_11)
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@stap_client_connect_LDFLAGS = $(AM_LDFLAGS)
+@BUILD_TRANSLATOR_TRUE@@HAVE_NSS_TRUE@stap_server_connect_LDFLAGS = $(AM_LDFLAGS)
staprun_SOURCES = runtime/staprun/staprun.c \
runtime/staprun/staprun_funcs.c runtime/staprun/ctl.c \
- runtime/staprun/common.c $(am__append_14)
+ runtime/staprun/common.c $(am__append_17)
staprun_CPPFLAGS = $(AM_CPPFLAGS)
staprun_CFLAGS = @PROCFLAGS@ $(AM_CFLAGS) @PIECFLAGS@ \
-DSINGLE_THREADED -fno-strict-aliasing -fno-builtin-strftime \
- $(am__append_15)
+ $(am__append_18)
staprun_LDFLAGS = $(AM_LDFLAGS) @PIELDFLAGS@
-staprun_LDADD = @PROCFLAGS@ $(am__append_16)
+staprun_LDADD = @PROCFLAGS@ $(am__append_19)
stapio_SOURCES = runtime/staprun/stapio.c \
runtime/staprun/mainloop.c runtime/staprun/common.c \
runtime/staprun/ctl.c \
@@ -378,17 +404,17 @@ stapio_SOURCES = runtime/staprun/stapio.c \
stapio_CFLAGS = @PROCFLAGS@ $(AM_CFLAGS) @PIECFLAGS@ -fno-strict-aliasing -fno-builtin-strftime
stapio_LDFLAGS = $(AM_LDFLAGS) @PIELDFLAGS@
stapio_LDADD = @PROCFLAGS@ -lpthread
-@BUILD_SERVER_TRUE@stap_client_connect_SOURCES = stap-client-connect.c
-@BUILD_SERVER_TRUE@stap_client_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
-@BUILD_SERVER_TRUE@stap_client_connect_LDADD = -lssl3
-@BUILD_SERVER_TRUE@stap_server_connect_SOURCES = stap-server-connect.c
-@BUILD_SERVER_TRUE@stap_server_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
-@BUILD_SERVER_TRUE@stap_server_connect_LDADD = -lssl3
-loc2c_test_SOURCES = loc2c-test.c loc2c.c
-loc2c_test_CFLAGS = $(stap_CFLAGS)
-loc2c_test_CPPFLAGS = $(stap_CPPFLAGS)
-loc2c_test_LDFLAGS = $(stap_LDFLAGS)
-loc2c_test_LDADD = $(stap_LDADD)
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@stap_client_connect_SOURCES = stap-client-connect.c
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@stap_client_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@stap_client_connect_LDADD = -lssl3
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@stap_server_connect_SOURCES = stap-server-connect.c
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@stap_server_connect_CFLAGS = -Wall -Werror $(nss_CFLAGS) $(nspr_CFLAGS)
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@stap_server_connect_LDADD = -lssl3
+@BUILD_TRANSLATOR_TRUE@loc2c_test_SOURCES = loc2c-test.c loc2c.c
+@BUILD_TRANSLATOR_TRUE@loc2c_test_CFLAGS = $(stap_CFLAGS)
+@BUILD_TRANSLATOR_TRUE@loc2c_test_CPPFLAGS = $(stap_CPPFLAGS)
+@BUILD_TRANSLATOR_TRUE@loc2c_test_LDFLAGS = $(stap_LDFLAGS)
+@BUILD_TRANSLATOR_TRUE@loc2c_test_LDADD = $(stap_LDADD)
# crash(8) extension
@BUILD_CRASHMOD_TRUE@STAPLOG = staplog.so
@@ -1267,8 +1293,8 @@ install-man1: $(man1_MANS) $(man_MANS)
esac; \
done; \
for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
+ if test -f $$i; then file=$$i; \
+ else file=$(srcdir)/$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
case "$$ext" in \
1*) ;; \
@@ -1312,8 +1338,8 @@ install-man3: $(man3_MANS) $(man_MANS)
esac; \
done; \
for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
+ if test -f $$i; then file=$$i; \
+ else file=$(srcdir)/$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
case "$$ext" in \
3*) ;; \
@@ -1357,8 +1383,8 @@ install-man8: $(man8_MANS) $(man_MANS)
esac; \
done; \
for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
+ if test -f $$i; then file=$$i; \
+ else file=$(srcdir)/$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
case "$$ext" in \
8*) ;; \
@@ -1484,7 +1510,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -1575,6 +1601,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
@BUILD_CRASHMOD_FALSE@@BUILD_ELFUTILS_FALSE@@BUILD_SERVER_FALSE@install-exec-local:
+@BUILD_CRASHMOD_FALSE@@BUILD_TRANSLATOR_FALSE@install-exec-local:
clean: clean-recursive
clean-am: clean-binPROGRAMS clean-generic clean-local \
@@ -1693,26 +1720,26 @@ cscope:
cd $(srcdir) && \
(echo -q ; git ls-files '*.cxx' '*.c' '*.h' | grep -v '^testsuite' ) > cscope.files && \
cscope -b -q
-@BUILD_ELFUTILS_TRUE@stamp-elfutils: config.status
-@BUILD_ELFUTILS_TRUE@ $(MAKE) $(AM_MAKEFLAGS) -C build-elfutils all bin_PROGRAMS=
-@BUILD_ELFUTILS_TRUE@ for dir in libelf libebl libdw libdwfl backends; do \
-@BUILD_ELFUTILS_TRUE@ $(MAKE) $(AM_MAKEFLAGS) -C build-elfutils/$$dir bin_PROGRAMS= install; \
-@BUILD_ELFUTILS_TRUE@ done
-@BUILD_ELFUTILS_TRUE@ touch $@
-@BUILD_ELFUTILS_TRUE@lib-elfutils/libdw.so: stamp-elfutils ;
-@BUILD_ELFUTILS_TRUE@install-elfutils:
-@BUILD_ELFUTILS_TRUE@ mkdir -p $(DESTDIR)$(pkglibdir)
-@BUILD_ELFUTILS_TRUE@ for file in lib-elfutils/*.so* lib-elfutils/${PACKAGE_NAME}/*.so*; do \
-@BUILD_ELFUTILS_TRUE@ $(INSTALL_PROGRAM) $$file $(DESTDIR)$(pkglibdir); \
-@BUILD_ELFUTILS_TRUE@ done
-@BUILD_ELFUTILS_TRUE@install-exec-local: install-elfutils
-
-@BUILD_SERVER_TRUE@install-exec-local: install-scripts
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@stamp-elfutils: config.status
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ $(MAKE) $(AM_MAKEFLAGS) -C build-elfutils all bin_PROGRAMS=
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ for dir in libelf libebl libdw libdwfl backends; do \
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ $(MAKE) $(AM_MAKEFLAGS) -C build-elfutils/$$dir bin_PROGRAMS= install; \
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ done
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ touch $@
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@lib-elfutils/libdw.so: stamp-elfutils ;
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@install-elfutils:
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ mkdir -p $(DESTDIR)$(pkglibdir)
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ for file in lib-elfutils/*.so* lib-elfutils/${PACKAGE_NAME}/*.so*; do \
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ $(INSTALL_PROGRAM) $$file $(DESTDIR)$(pkglibdir); \
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@ done
+@BUILD_ELFUTILS_TRUE@@BUILD_TRANSLATOR_TRUE@install-exec-local: install-elfutils
+
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@install-exec-local: install-scripts
# scripts should be installed before this rule is run
-@BUILD_SERVER_TRUE@install-scripts: install-binSCRIPTS
-@BUILD_SERVER_TRUE@ for f in $(bin_SCRIPTS); do \
-@BUILD_SERVER_TRUE@ sed -i -e "/INSTALL-HOOK/d;s,exec_prefix=.*,exec_prefix=$(exec_prefix)/bin/,;s,sysconfdir=.*,sysconfdir=$(sysconfdir)," $(DESTDIR)$(bindir)/$$f; \
-@BUILD_SERVER_TRUE@ done
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@install-scripts: install-binSCRIPTS
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@ for f in $(bin_SCRIPTS); do \
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@ sed -i -e "/INSTALL-HOOK/d;s,exec_prefix=.*,exec_prefix=$(exec_prefix)/bin/,;s,sysconfdir=.*,sysconfdir=$(sysconfdir)," $(DESTDIR)$(bindir)/$$f; \
+@BUILD_SERVER_TRUE@@BUILD_TRANSLATOR_TRUE@ done
install-exec-hook:
if [ `id -u` -eq 0 ]; then chmod 04111 "$(DESTDIR)$(bindir)/staprun"; fi
diff --git a/aclocal.m4 b/aclocal.m4
index e726a5cc..696dba2c 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.10.2 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -13,7 +13,7 @@
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(AC_AUTOCONF_VERSION, [2.63],,
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
[m4_warning([this file was generated for autoconf 2.63.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
@@ -175,7 +175,7 @@ else
fi[]dnl
])# PKG_CHECK_MODULES
-# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -190,7 +190,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.10'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.10.1], [],
+m4_if([$1], [1.10.2], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -204,12 +204,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.10.1])dnl
+[AM_AUTOMAKE_VERSION([1.10.2])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
@@ -482,19 +482,28 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-#serial 3
+#serial 4
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
+[# Autoconf 2.62 quotes --file arguments for eval, but not when files
+# are listed without --file. Let's play safe and only enable the eval
+# if we detect the quoting.
+case $CONFIG_FILES in
+*\'*) eval set x "$CONFIG_FILES" ;;
+*) set x $CONFIG_FILES ;;
+esac
+shift
+for mf
+do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
@@ -791,14 +800,14 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 5
+# serial 6
# AM_PROG_CC_C_O
# --------------
@@ -810,8 +819,9 @@ AC_REQUIRE_AUX_FILE([compile])dnl
# FIXME: we rely on the cache variable name because
# there is no other way.
set dummy $CC
-ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
@@ -889,13 +899,13 @@ esac
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
+# serial 4
# _AM_MANGLE_OPTION(NAME)
# -----------------------
@@ -912,7 +922,7 @@ AC_DEFUN([_AM_SET_OPTION],
# ----------------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
diff --git a/config.in b/config.in
index 7369cf53..217d2c94 100644
--- a/config.in
+++ b/config.in
@@ -3,6 +3,9 @@
/* Configuration/build date */
#undef DATE
+/* librpm version specific library name to dlopen. */
+#undef DLOPEN_LIBRPM
+
/* make -P prologue-searching default */
#undef ENABLE_PROLOGUES
@@ -21,6 +24,9 @@
/* Define to 1 if you have the `pfm' library (-lpfm). */
#undef HAVE_LIBPFM
+/* Define if librpm library is being used. */
+#undef HAVE_LIBRPM
+
/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */
#undef HAVE_LIBSQLITE3
@@ -89,9 +95,3 @@
/* Define like PROTOTYPES; this can be used by system headers. */
#undef __PROTOTYPES
-
-/* librpm version specific library name to dlopen. */
-#undef DLOPEN_LIBRPM
-
-/* Define if librpm library is being used. */
-#undef HAVE_LIBRPM
diff --git a/configure b/configure
index 8703acb5..8a2c7593 100755
--- a/configure
+++ b/configure
@@ -676,6 +676,8 @@ have_latex
BUILD_CRASHMOD_FALSE
BUILD_CRASHMOD_TRUE
staplog_CPPFLAGS
+BUILD_TRANSLATOR_FALSE
+BUILD_TRANSLATOR_TRUE
sqlite3_LIBS
PIECXXFLAGS
PIECFLAGS
@@ -782,6 +784,7 @@ enable_prologues
enable_ssp
enable_pie
enable_sqlite
+enable_translator
enable_crash
enable_docs
enable_refdocs
@@ -1447,6 +1450,7 @@ Optional Features:
--disable-ssp disable gcc stack-protector
--enable-pie enable position-independent-executable
--enable-sqlite build with sqlite support
+ --disable-translator build only runtime utilities
--enable-crash[=DIRECTORY]
enable crash extension (default is disabled).
Optional DIRECTORY is the path to the crash header
@@ -5203,8 +5207,9 @@ fi
# FIXME: we rely on the cache variable name because
# there is no other way.
set dummy $CC
-ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
@@ -6345,6 +6350,22 @@ fi
fi
+# Check whether --enable-translator was given.
+if test "${enable_translator+set}" = set; then
+ enableval=$enable_translator;
+else
+ enable_translator="yes"
+fi
+
+ if test "$enable_translator" == "yes"; then
+ BUILD_TRANSLATOR_TRUE=
+ BUILD_TRANSLATOR_FALSE='#'
+else
+ BUILD_TRANSLATOR_TRUE='#'
+ BUILD_TRANSLATOR_FALSE=
+fi
+
+
# Check whether --enable-crash was given.
if test "${enable_crash+set}" = set; then
enableval=$enable_crash; if test "$enable_crash" != "no"; then
@@ -8839,8 +8860,10 @@ ac_config_files="$ac_config_files Makefile doc/Makefile doc/SystemTap_Tapset_Ref
subdirs="$subdirs testsuite"
-ac_config_files="$ac_config_files run-stap"
+if test $enable_translator == "yes"; then
+ ac_config_files="$ac_config_files run-stap"
+fi
ac_config_files="$ac_config_files run-staprun"
cat >confcache <<\_ACEOF
@@ -8975,6 +8998,13 @@ $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${BUILD_TRANSLATOR_TRUE}" && test -z "${BUILD_TRANSLATOR_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_TRANSLATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"BUILD_TRANSLATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${BUILD_CRASHMOD_TRUE}" && test -z "${BUILD_CRASHMOD_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_CRASHMOD\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -10221,7 +10251,16 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files
+# are listed without --file. Let's play safe and only enable the eval
+# if we detect the quoting.
+case $CONFIG_FILES in
+*\'*) eval set x "$CONFIG_FILES" ;;
+*) set x $CONFIG_FILES ;;
+esac
+shift
+for mf
+do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
diff --git a/configure.ac b/configure.ac
index 83345959..403dfab2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,6 +130,13 @@ AS_IF([test "x$enable_sqlite" != xno],
AC_MSG_FAILURE([--enable-sqlite was given, but test for sqlite failed])
fi])])
+dnl Handle the option to only build runtime
+AC_ARG_ENABLE([translator],
+ AS_HELP_STRING([--disable-translator], [build only runtime utilities]),
+ [],
+ [enable_translator="yes"])
+AM_CONDITIONAL([BUILD_TRANSLATOR], [test "$enable_translator" == "yes"])
+
dnl Handle the option to build the crash extension
AC_ARG_ENABLE([crash],
AS_HELP_STRING([--enable-crash@<:@=DIRECTORY@:>@],
@@ -575,7 +582,9 @@ AC_DEFINE_UNQUOTED(STAP_PREFIX, "$prefix", [configure prefix location])
AC_CONFIG_HEADERS([config.h:config.in])
AC_CONFIG_FILES(Makefile doc/Makefile doc/SystemTap_Tapset_Reference/Makefile grapher/Makefile stap.1 stapprobes.3stap stapfuncs.3stap stapvars.3stap stapex.3stap staprun.8 stap-server.8 man/stapprobes.iosched.3stap man/stapprobes.netdev.3stap man/stapprobes.nfs.3stap man/stapprobes.nfsd.3stap man/stapprobes.pagefault.3stap man/stapprobes.kprocess.3stap man/stapprobes.rpc.3stap man/stapprobes.scsi.3stap man/stapprobes.signal.3stap man/stapprobes.socket.3stap man/stapprobes.tcp.3stap man/stapprobes.udp.3stap initscript/systemtap)
AC_CONFIG_SUBDIRS(testsuite)
-AC_CONFIG_FILES([run-stap], [chmod +x run-stap])
+if test $enable_translator == "yes"; then
+ AC_CONFIG_FILES([run-stap], [chmod +x run-stap])
+fi
AC_CONFIG_FILES([run-staprun], [chmod +x run-staprun])
AC_OUTPUT
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 728352a0..f7d902a7 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -185,8 +185,8 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
@@ -286,7 +286,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
diff --git a/doc/SystemTap_Tapset_Reference/Makefile.in b/doc/SystemTap_Tapset_Reference/Makefile.in
index a58bbc73..82217f3a 100644
--- a/doc/SystemTap_Tapset_Reference/Makefile.in
+++ b/doc/SystemTap_Tapset_Reference/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -190,8 +190,8 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
@@ -249,7 +249,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
diff --git a/grapher/Makefile.in b/grapher/Makefile.in
index af2fecb5..88caeda1 100644
--- a/grapher/Makefile.in
+++ b/grapher/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -194,8 +194,8 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
@@ -317,7 +317,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
diff --git a/testsuite/systemtap.examples/index.html b/testsuite/systemtap.examples/index.html
index e5673138..b2ed3a3a 100644
--- a/testsuite/systemtap.examples/index.html
+++ b/testsuite/systemtap.examples/index.html
@@ -82,6 +82,9 @@ keywords: <a href="keyword-index.html#IO">IO</a> <br>
<li><a href="io/traceio2.stp">io/traceio2.stp</a> - Watch I/O Activity on a Particular Device<br>
keywords: <a href="keyword-index.html#IO">IO</a> <br>
<p>Print out the executable name and process number as reads and writes to the specified device occur.</p></li>
+<li><a href="io/ttyspy.stp">io/ttyspy.stp</a> - Monitor tty typing.<br>
+keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#TTY">TTY</a> <a href="keyword-index.html#PER-PROCESS">PER-PROCESS</a> <a href="keyword-index.html#MONITOR">MONITOR</a> <br>
+<p>The ttyspy.stp script uses tty_audit hooks to monitor recent typing activity on the system, printing a scrolling record of recent keystrokes, on a per-tty basis.</p></li>
<li><a href="memory/kmalloc-top">memory/kmalloc-top</a> - Show Paths to Kernel Malloc (kmalloc) Invocations<br>
keywords: <a href="keyword-index.html#MEMORY">MEMORY</a> <br>
<p>The kmalloc-top perl program runs a small systemtap script to collect stack traces for each call to the kmalloc function and counts the time that each stack trace is observed. When kmalloc-top exits it prints out sorted list. The output can be be filtered to print only only the first stack traces (-t) stack traces with more a minimum counts (-m), or exclude certain stack traces (-e).</p></li>
diff --git a/testsuite/systemtap.examples/index.txt b/testsuite/systemtap.examples/index.txt
index 4eef904c..91fc66ae 100644
--- a/testsuite/systemtap.examples/index.txt
+++ b/testsuite/systemtap.examples/index.txt
@@ -129,6 +129,14 @@ keywords: io
to the specified device occur.
+io/ttyspy.stp - Monitor tty typing.
+keywords: io tty per-process monitor
+
+ The ttyspy.stp script uses tty_audit hooks to monitor recent typing
+ activity on the system, printing a scrolling record of recent
+ keystrokes, on a per-tty basis.
+
+
memory/kmalloc-top - Show Paths to Kernel Malloc (kmalloc) Invocations
keywords: memory
diff --git a/testsuite/systemtap.examples/io/ttyspy.meta b/testsuite/systemtap.examples/io/ttyspy.meta
new file mode 100644
index 00000000..e29add1b
--- /dev/null
+++ b/testsuite/systemtap.examples/io/ttyspy.meta
@@ -0,0 +1,6 @@
+title: Monitor tty typing.
+name: ttyspy.stp
+keywords: io tty per-process monitor
+description: The ttyspy.stp script uses tty_audit hooks to monitor recent typing activity on the system, printing a scrolling record of recent keystrokes, on a per-tty basis.
+test_check: stap -gp4 ttyspy.stp
+test_installcheck: stap --skip-badvars -g ttyspy.stp -c "sleep 7"
diff --git a/testsuite/systemtap.examples/io/ttyspy.stp b/testsuite/systemtap.examples/io/ttyspy.stp
new file mode 100755
index 00000000..272d82e9
--- /dev/null
+++ b/testsuite/systemtap.examples/io/ttyspy.stp
@@ -0,0 +1,46 @@
+#! /usr/bin/stap -g
+# May also need --skip-badvars
+
+global activity_time, activity_log
+
+/* Concatenate head and tail, to a max of @num chars, preferring to keep the tail
+ (as if it were a recent history buffer). */
+function strcattail:string(head:string,tail:string,num:long) %{
+ unsigned taillen = strlen(THIS->tail);
+ unsigned headlen = strlen(THIS->head);
+ unsigned maxlen = THIS->num < MAXSTRINGLEN ? THIS->num : MAXSTRINGLEN;
+ unsigned headkeep = min(maxlen-taillen,headlen);
+ unsigned headdrop = headlen-headkeep;
+
+ if (headkeep)
+ strlcpy (THIS->__retvalue, &THIS->head[headdrop], headkeep+1); /* includes \0 */
+ strlcat (THIS->__retvalue, THIS->tail, maxlen);
+%}
+
+probe kernel.function("tty_audit_add_data") {
+ major=$tty->driver->major;
+ minor=$tty->driver->minor_start + $tty->index;
+ pgrp=$tty->pgrp %( kernel_v >= "2.6.24" %? ->numbers[0]->nr %: %);
+ data=kernel_string_n($data,$size);
+ uid=uid()
+
+ activity_time[major,minor,pgrp,uid] = gettimeofday_s();
+ activity_log[major,minor,pgrp,uid]
+ = strcattail(activity_log[major,minor,pgrp,uid],data,40);
+}
+
+probe timer.s(3) {
+ ansi_clear_screen ()
+ printf("(%3s,%2s,%5s,%5s)\n", "maj","min","pgrp","uid");
+ foreach ([x,y,z,u] in activity_time-) {
+ printf("(%3d,%3d,%5d,%5d) %s\n", x,y,z,u,
+ text_str(activity_log[x,y,z,u]))
+ }
+
+ /* delete last record, if older than 60 seconds */
+ if (activity_time[x,y,z,u]+60 < gettimeofday_s()) {
+ delete activity_time[x,y,z,u]
+ delete activity_log[x,y,z,u]
+ }
+}
+
diff --git a/testsuite/systemtap.examples/keyword-index.html b/testsuite/systemtap.examples/keyword-index.html
index b7f52246..7306c164 100644
--- a/testsuite/systemtap.examples/keyword-index.html
+++ b/testsuite/systemtap.examples/keyword-index.html
@@ -39,7 +39,7 @@
</ul>
<h2>Examples by Keyword</h2>
-<p><tt><a href="#BACKTRACE">BACKTRACE</a> <a href="#BUFFER">BUFFER</a> <a href="#CALLGRAPH">CALLGRAPH</a> <a href="#CPU">CPU</a> <a href="#DISK">DISK</a> <a href="#FORMAT">FORMAT</a> <a href="#FREE">FREE</a> <a href="#FUNCTIONS">FUNCTIONS</a> <a href="#FUTEX">FUTEX</a> <a href="#GRAPH">GRAPH</a> <a href="#INTERRUPT">INTERRUPT</a> <a href="#IO">IO</a> <a href="#LOCKING">LOCKING</a> <a href="#MEMORY">MEMORY</a> <a href="#NETWORK">NETWORK</a> <a href="#PER-PROCESS">PER-PROCESS</a> <a href="#PROCESS">PROCESS</a> <a href="#PROFILING">PROFILING</a> <a href="#READ">READ</a> <a href="#SCHEDULER">SCHEDULER</a> <a href="#SIGNALS">SIGNALS</a> <a href="#SIMPLE">SIMPLE</a> <a href="#SLEEP">SLEEP</a> <a href="#SOCKET">SOCKET</a> <a href="#SYSCALL">SYSCALL</a> <a href="#TCP">TCP</a> <a href="#TIME">TIME</a> <a href="#TRACE">TRACE</a> <a href="#TRACEPOINT">TRACEPOINT</a> <a href="#TRAFFIC">TRAFFIC</a> <a href="#USE">USE</a> <a href="#WAIT4">WAIT4</a> <a href="#WRITE">WRITE</a> </tt></p>
+<p><tt><a href="#BACKTRACE">BACKTRACE</a> <a href="#BUFFER">BUFFER</a> <a href="#CALLGRAPH">CALLGRAPH</a> <a href="#CPU">CPU</a> <a href="#DISK">DISK</a> <a href="#FORMAT">FORMAT</a> <a href="#FREE">FREE</a> <a href="#FUNCTIONS">FUNCTIONS</a> <a href="#FUTEX">FUTEX</a> <a href="#GRAPH">GRAPH</a> <a href="#INTERRUPT">INTERRUPT</a> <a href="#IO">IO</a> <a href="#LOCKING">LOCKING</a> <a href="#MEMORY">MEMORY</a> <a href="#MONITOR">MONITOR</a> <a href="#NETWORK">NETWORK</a> <a href="#PER-PROCESS">PER-PROCESS</a> <a href="#PROCESS">PROCESS</a> <a href="#PROFILING">PROFILING</a> <a href="#READ">READ</a> <a href="#SCHEDULER">SCHEDULER</a> <a href="#SIGNALS">SIGNALS</a> <a href="#SIMPLE">SIMPLE</a> <a href="#SLEEP">SLEEP</a> <a href="#SOCKET">SOCKET</a> <a href="#SYSCALL">SYSCALL</a> <a href="#TCP">TCP</a> <a href="#TIME">TIME</a> <a href="#TRACE">TRACE</a> <a href="#TRACEPOINT">TRACEPOINT</a> <a href="#TRAFFIC">TRAFFIC</a> <a href="#TTY">TTY</a> <a href="#USE">USE</a> <a href="#WAIT4">WAIT4</a> <a href="#WRITE">WRITE</a> </tt></p>
<h3><a name="BACKTRACE">BACKTRACE</a></h3>
<ul>
<li><a href="interrupt/scf.stp">interrupt/scf.stp</a> - Tally Backtraces for Inter-Processor Interrupt (IPI)<br>
@@ -141,6 +141,9 @@ keywords: <a href="keyword-index.html#IO">IO</a> <br>
<li><a href="io/traceio2.stp">io/traceio2.stp</a> - Watch I/O Activity on a Particular Device<br>
keywords: <a href="keyword-index.html#IO">IO</a> <br>
<p>Print out the executable name and process number as reads and writes to the specified device occur.</p></li>
+<li><a href="io/ttyspy.stp">io/ttyspy.stp</a> - Monitor tty typing.<br>
+keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#TTY">TTY</a> <a href="keyword-index.html#PER-PROCESS">PER-PROCESS</a> <a href="keyword-index.html#MONITOR">MONITOR</a> <br>
+<p>The ttyspy.stp script uses tty_audit hooks to monitor recent typing activity on the system, printing a scrolling record of recent keystrokes, on a per-tty basis.</p></li>
<li><a href="process/sleepingBeauties.stp">process/sleepingBeauties.stp</a> - Generating Backtraces of Threads Waiting for IO Operations<br>
keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#SCHEDULER">SCHEDULER</a> <a href="keyword-index.html#BACKTRACE">BACKTRACE</a> <br>
<p>The script monitors the time that threads spend waiting for IO operations (in "D" state) in the wait_for_completion function. If a thread spends over 10ms, its name and backtrace is printed, and later so is the total delay.</p></li>
@@ -160,6 +163,12 @@ keywords: <a href="keyword-index.html#MEMORY">MEMORY</a> <br>
keywords: <a href="keyword-index.html#MEMORY">MEMORY</a> <br>
<p>The pfaults.stp script generates a simple log for each major and minor page fault that occurs on the system. Each line contains a timestamp (in microseconds) when the page fault servicing was completed, the pid of the process, the address of the page fault, the type of access (read or write), the type of fault (major or minor), and the elapsed time for page fault. This log can be examined to determine where the page faults are occuring.</p></li>
</ul>
+<h3><a name="MONITOR">MONITOR</a></h3>
+<ul>
+<li><a href="io/ttyspy.stp">io/ttyspy.stp</a> - Monitor tty typing.<br>
+keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#TTY">TTY</a> <a href="keyword-index.html#PER-PROCESS">PER-PROCESS</a> <a href="keyword-index.html#MONITOR">MONITOR</a> <br>
+<p>The ttyspy.stp script uses tty_audit hooks to monitor recent typing activity on the system, printing a scrolling record of recent keystrokes, on a per-tty basis.</p></li>
+</ul>
<h3><a name="NETWORK">NETWORK</a></h3>
<ul>
<li><a href="network/dropwatch.stp">network/dropwatch.stp</a> - Watch Where Socket Buffers are Freed in the Kernel<br>
@@ -180,6 +189,9 @@ keywords: <a href="keyword-index.html#NETWORK">NETWORK</a> <a href="keyword-inde
</ul>
<h3><a name="PER-PROCESS">PER-PROCESS</a></h3>
<ul>
+<li><a href="io/ttyspy.stp">io/ttyspy.stp</a> - Monitor tty typing.<br>
+keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#TTY">TTY</a> <a href="keyword-index.html#PER-PROCESS">PER-PROCESS</a> <a href="keyword-index.html#MONITOR">MONITOR</a> <br>
+<p>The ttyspy.stp script uses tty_audit hooks to monitor recent typing activity on the system, printing a scrolling record of recent keystrokes, on a per-tty basis.</p></li>
<li><a href="network/nettop.stp">network/nettop.stp</a> - Periodic Listing of Processes Using Network Interfaces<br>
keywords: <a href="keyword-index.html#NETWORK">NETWORK</a> <a href="keyword-index.html#TRAFFIC">TRAFFIC</a> <a href="keyword-index.html#PER-PROCESS">PER-PROCESS</a> <br>
<p>Every five seconds the nettop.stp script prints out a list of processed (PID and command) with the number of packets sent/received and the amount of data sent/received by the process during that interval.</p></li>
@@ -328,6 +340,12 @@ keywords: <a href="keyword-index.html#NETWORK">NETWORK</a> <a href="keyword-inde
keywords: <a href="keyword-index.html#NETWORK">NETWORK</a> <a href="keyword-index.html#TRAFFIC">TRAFFIC</a> <br>
<p>The tcpdumplike.stp prints out a line for each TCP packet received. Each line includes the source and destination IP addresses, the source and destination ports, and flags.</p></li>
</ul>
+<h3><a name="TTY">TTY</a></h3>
+<ul>
+<li><a href="io/ttyspy.stp">io/ttyspy.stp</a> - Monitor tty typing.<br>
+keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#TTY">TTY</a> <a href="keyword-index.html#PER-PROCESS">PER-PROCESS</a> <a href="keyword-index.html#MONITOR">MONITOR</a> <br>
+<p>The ttyspy.stp script uses tty_audit hooks to monitor recent typing activity on the system, printing a scrolling record of recent keystrokes, on a per-tty basis.</p></li>
+</ul>
<h3><a name="USE">USE</a></h3>
<ul>
<li><a href="general/graphs.stp">general/graphs.stp</a> - Graphing Disk and CPU Utilization<br>
diff --git a/testsuite/systemtap.examples/keyword-index.txt b/testsuite/systemtap.examples/keyword-index.txt
index c0082e36..eee89e22 100644
--- a/testsuite/systemtap.examples/keyword-index.txt
+++ b/testsuite/systemtap.examples/keyword-index.txt
@@ -222,6 +222,14 @@ keywords: io
to the specified device occur.
+io/ttyspy.stp - Monitor tty typing.
+keywords: io tty per-process monitor
+
+ The ttyspy.stp script uses tty_audit hooks to monitor recent typing
+ activity on the system, printing a scrolling record of recent
+ keystrokes, on a per-tty basis.
+
+
process/sleepingBeauties.stp - Generating Backtraces of Threads Waiting for IO Operations
keywords: io scheduler backtrace
@@ -267,6 +275,16 @@ keywords: memory
determine where the page faults are occuring.
+= MONITOR =
+
+io/ttyspy.stp - Monitor tty typing.
+keywords: io tty per-process monitor
+
+ The ttyspy.stp script uses tty_audit hooks to monitor recent typing
+ activity on the system, printing a scrolling record of recent
+ keystrokes, on a per-tty basis.
+
+
= NETWORK =
network/dropwatch.stp - Watch Where Socket Buffers are Freed in the Kernel
@@ -316,6 +334,14 @@ keywords: network traffic
= PER-PROCESS =
+io/ttyspy.stp - Monitor tty typing.
+keywords: io tty per-process monitor
+
+ The ttyspy.stp script uses tty_audit hooks to monitor recent typing
+ activity on the system, printing a scrolling record of recent
+ keystrokes, on a per-tty basis.
+
+
network/nettop.stp - Periodic Listing of Processes Using Network Interfaces
keywords: network traffic per-process
@@ -687,6 +713,16 @@ keywords: network traffic
source and destination ports, and flags.
+= TTY =
+
+io/ttyspy.stp - Monitor tty typing.
+keywords: io tty per-process monitor
+
+ The ttyspy.stp script uses tty_audit hooks to monitor recent typing
+ activity on the system, printing a scrolling record of recent
+ keystrokes, on a per-tty basis.
+
+
= USE =
general/graphs.stp - Graphing Disk and CPU Utilization