DESCRIPTION
Errors that occur during pass 1 (parsing) usually mean a basic syntax error of some sort occurred in the systemtap script. There are several classes of problems possible:
- plain syntax error
-
The systemtap script parser detects a large variety of errors, such as
missing operands, bad punctuation. It tries to list what kinds of tokens
it was expecting to see, and will show the region of the source code with
the problem. Please review the
stap(1)
man page and/or the tutorial, to correct the script's syntax.
- grammar ambiguities
-
There is at least one known ambiguity in the systemtap grammar. It relates
to the optionality of
;
(semicolon) separators between statements, and the
++ and --
increment/decrement operators. If the parser indicates an error, consider
adding some explicit
;
separators between nearby statements and try again.
- missing command line arguments
-
A systemtap script that uses the
$N and @N
constructs for substituting in command-line options may fail if not
enough options were given on the stap command line.
- compatibility changes
-
Some versions of systemtap have changed the language incompatibly,
for example by adding the try/catch keywords for exception handling.
In such cases, rerun systemtap with the
--compatibility=VERSION
option, substituting the last systemtap version where your script
was known to work. You may also check the release-history NEWS file
for compatibility changes.
GATHERING MORE INFORMATION
Increasing the verbosity of pass-1 with an option such as --vp 1 can help pinpoint the problem.