blob: d2ecb2ee34c62cd4a81de98448b571d42e50f487 [file] [log] [blame]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SystemTap
---------
SystemTap is a robust system for tracing kernel and user events.
Requirements
------------
On Ubuntu systems (written against 14.04):
1. Install the 'systemtap' package.
2. Optionally install the 'systemtap-doc' package for some useful manpages
(like 'stapprobes' and 'stapfuncs').
3. Run stap-prep. It'll probably tell you to do the following:
a. Install the debug symbols for your kernel. Follow the instructions at
https://wiki.ubuntu.com/DebuggingProgramCrash#Debug_Symbol_Packages to
install the right package. It should be named something like
linux-image-3.13.0-36-generic-dbgsym.
b. Add yourself to both the 'stapusr' and 'stapdev' groups. This isn't
strictly required; you can run SystemTap scripts as root.
On RHEL systems (written against CentOS 6.4):
1. Install the 'systemtap' package.
2. Install the debug symbols for your kernel. Follow the instructions at
http://fendertech.blogspot.com/2013/04/centos-install-kernel-debuginfo.html
to add the appropriate repo, then install the right package. It should be
named something like kernel-debuginfo-2.6.32-358.23.2.el6.x86_64.
3. Add yourself to both the 'stapusr' and 'stapdev' groups. This isn't
strictly required; you can run SystemTap scripts as root.
Running
-------
Some SystemTap scripts have a hashbang so that they can be run directly.
Others need to be run with the 'stap' binary.
Useful options include:
-o FILE: send standard output to the given file.
-c CMD: run the command, set the probe target to the command's PID, and exit
when it finishes. Relevant for scripts that filter on target().
-x PID: set the probe target to PID. Relevant for scripts that filter on
target().