Provided by: systemtap-doc_2.9-2ubuntu2_all bug


       error::pass4 - systemtap pass-4 errors


       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
              functions,    types,    or    macros    referenced    by    systemtap.     Upstream
              (git://  builds  of  systemtap  are  often quickly
              updated to include relevant 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
              compiler errors.

       incompatible embedded-C code
              The interface  standards  between  systemtap-generated  code  and  embedded-C  code
              occasionally  change.  For example, before version 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 standards,
              or use the stap --compatible=VERSION option to make systemtap use a different one.

       compiler bugs and mysteries
              Messages such as "internal compiler error" suggest compiler problems.  These should
              be  reported to the compiler developers in the form of a preprocessed .i file, plus
              the compiler command line.  To gather relevant information, run

              stap -k --vp 0003 -p4 ....

              Systemtap will report the saved temporary directory, and the compiler command  line
              it attempted.  Go to the directory to find he main generated file stap_NNNNN_src.c.
              Force the compiler to produce a preprocessed file with:

              make -C /lib/modules/`uname -r`/build M=`pwd` stap_NNNNN_src.i

              (note the .i suffix),  and  the  compiler  command  line  should  be  in  the  file