NAME error::pass4 - systemtap pass-4 errors
DESCRIPTION Errors that occur during pass 4 (compilation) have generally only a few causes:
kernel or OS version changes The systemtap runtime and embedded-C fragments in the tapset library are designed to be portable across a wide range of OS versions. However, incompatibilities can occur when some OS changes occur, such as kernel modifications that change func- tions, types, or macros referenced by systemtap. Upstream builds of systemtap are often quickly updated to include rele- vant fixes, so try getting or making an updated build. If the issue persists, report the problem to the systemtap developers.
buggy embedded-C code Embedded-C code in your own guru-mode script cannot be checked by systemtap, and is passed through verbatim to the compiler. Errors in such snippets of code may be found during the pass-4 compiler invocation, though may be hard to identify by the com- piler errors.
incompatible embedded-C code The interface standards between systemtap-generated code and embedded-C code occasionally change. For example, before ver- sion 1.8, arguments were passed using macros THIS->foo and THIS->__retvalue but from version 1.8 onward, using STAP_ARG_foo and STAP_RETVALUE. Adjust your embedded-C code to current stan- dards, or use the stap --compatible=VERSION option to make sys- temtap use a different one.
GATHERING MORE INFORMATION It may be necessary to run systemtap with -k or -p3 to examine the gen- erated C code. Increasing the verbosity of pass-4 with an option such as --vp 0001 can also help pinpoint the problem.
SEE ALSO stap(1), error::reporting(7stap)