ERROR::PASS5(7stap)ERROR::PASS5(7stap)NAME
error::pass5 - systemtap pass-5 errors
DESCRIPTION
Errors that occur during pass 5 (execution) can have a variety of causes.
exceptional events during script execution
The systemtap translator and runtime include numerous error checks that aim to protect the systems and the users from mistakes or
transient conditions. The script may deliberately call the error() tapset function to signal a problem. Some memory needed for
accessing $context variables may be temporarily unavailable. Consider using the try/catch construct to wrap script fragments in
exception-handling code. Consider using the stap --suppress-handler-errors or stap --skip-badvars option.
resource exhaustion
One of several types of space or time resource limits may be exceeded by the script, including system overload, too many tuples to
be stored in an array, etc. Some of the error messages identify the constraint by macro name, which may be individually raised.
Consider using the stap --suppress-handler-errors option. Extend or disable resource limits using the stap -DLIMIT=NNNN option.
remote execution server problems
If you use the stap --remote option to direct a systemtap script to be executed somewhere else, ensure that an SSH connection may be
made to the remote host, and that it has the current systemtap runtime installed & available.
installation/permission problems
It is possible that your installation of systemtap was not correctly installed. For example, the /usr/bin/staprun program may lack
the necessary setuid permissions, or your invoking userid might not have sufficient privileges (root, or stapusr and related group
memberships). Environment variables may interfere with locating /usr/libexec/.../stapio.
errors from target program
The program invoked by the stap -c CMD option may exit with a non-zero code.
uncaught exceptions in the target program
When using --runtime=dyninst you may encounter an issue where the target program aborts with a message like "terminate called after
throwing an instance of 'foo_exception'". This is unfortunately a limitation of Dyninst, which sometimes prevents exceptions from
properly unwinding through instrumented code.
GATHERING MORE INFORMATION
Increasing the verbosity of pass-5 with an option such as --vp 00001 can help pinpoint the problem.
SEE ALSO stap(1),
http://sourceware.org/systemtap/wiki/TipExhaustedResourceErrors,
error::fault(7stap),
error::reporting(7stap)ERROR::PASS5(7stap)
Check Out this Related Man Page
WARNING::DEBUGINFO(7stap)WARNING::DEBUGINFO(7stap)NAME
warning::debuginfo - systemtap missing-debuginfo warnings
DESCRIPTION
For many symbolic probing operations, systemtap needs DWARF debuginfo for the relevant binaries. This often includes resolving func-
tion/statement probes, or $context variables in related handlers. DWARF debuginfo may be found in the original binaries built during com-
pilation, or may have been split into separate files. The SYSTEMTAP_DEBUGINFO_PATH environment variable affects where systemtap looks for
these files.
If your operating system came from a distributor, check with them if debuginfo packages or variants are available. If your distributor
does not have debuginfo-equipped binaries at all, you may need to rebuild it.
Systemtap uses the elfutils library to process ELF/DWARF files. The version of elfutils used by systemtap is the number after the slash in
the -V output:
% stap -V
Systemtap translator/driver (version 2.3/0.156, rpm 2.3-1.fc19)
Copyright (C) 2005-2013 Red Hat, Inc. and others
[...]
This indicates systemtap version 2.3 with elfutils version 0.156.
kernel debuginfo
For scripts that target the kernel, systemtap may search for the vmlinux file created during its original build. This is distinct
from the boot-loader's compressed/stripped vmlinuz file, and much larger. If you have a hand-built kernel, make sure it was built
with the CONFIG_DEBUG_INFO=y option.
process debuginfo
For scripts that target user-space, systemtap may search for debuginfo. If you have hand-built binaries, use CFLAGS=-g -O2 to com-
pile them.
minidebuginfo
On some systems, binaries may be compiled with a subset of debuginfo useful for function tracing and backtraces. This 'Minidebugin-
fo' is a xz compressed section labeled .gnu_debugdata. Support for minidebuginfo relies on elfutils version 0.156 or later.
compressed debuginfo
On some systems, debuginfo may be available, but compressed into .zdebug_* sections. Support for compressed debuginfo relies on el-
futils version 0.153 or later.
unnecessary debuginfo
In some cases, a script may be altered to avoid requiring debuginfo. For example, as script that uses probe syscall.* probes could
try instead probe nd_syscall.* (for non-DWARF syscall): these work similarly, and use more intricate (fragile) tapset functions to
extract system call arguments. Another option is use of compiled-in instrumentation such as kernel tracepoints or user-space
<sys/sdt.h> markers in libraries or executables, which do not require debuginfo. If debuginfo was required for resolving a compli-
cated $var->foo->bar expression, it may be possible to use @cast(var,"foo","foo.h")->foo->bar to synthesize debuginfo for that type
from a header file.
AUTOMATION
On some platforms, systemtap may advise what commands to run, in order to download needed debuginfo. Another possibility is to invoke sys-
temtap with the --download-debuginfo flag. The stap-prep script included with systemtap may be able to download the appropriate kernel de-
buginfo. Another possibility is to install and use a stap-server remote-compilation instance on a machine on your network, where debuginfo
and compilation resources can be centralized. Try the stap --use-server option, in case such a server is already running.
SEE ALSO stap(1),
stappaths(7),
stap-server(8),
strip(1),
error::dwarf(7stap),
error::reporting(7stap),
error::contextvars(7stap),
http://fedorahosted.org/elfutils,
http://fedoraproject.org/wiki/Features/MiniDebugInfo
WARNING::DEBUGINFO(7stap)