Next: C. Acknowledgments
Up: tutorial
Previous: A. Glossary
Contents
Subsections
We explain some common systemtap error messages in this section. Most
error messages include line/character numbers with which one can
locate the precise location of error in the script code. There is
sometimes a subsequent or prior line that elaborates.
error at: filename:line:column: details
- parse error: expected foo, saw bar
The script contained a grammar error. A different type of construct
was expected in the given context.
- parse error: embedded code in unprivileged script
The
script contained unsafe constructs such as embedded C (section
), but was run without the -g (guru mode)
option. Confirm that the constructs are used safely, then try
again with -g.
- semantic error: type mismatch for identifier 'foo'
string vs. long
In this case, the identifier foo
was previously inferred as a numeric type (``long''), but at the given
point is being used as a string. Similar messages appear if an array
index or function parameter slot is used with conflicting types.
- semantic error: unresolved type for identifier 'foo'
The identifier foo was used, for example in a print,
but without any operations that could assign it a type. Similar
messages may appear if a symbol is misspelled by a typo.
- semantic error: Expecting symbol or array index expression
Something other than an assignable lvalue was on the left hand sign
of an assignment.
- while searching for arity N function, semantic error:
unresolved function call
The script calls a function with N
arguments that does not exist. The function may exist with different
arity.
- semantic error: array locals not supported:
An
array operation is present for which no matching global declaration
was found. Similar messages appear if an array is used with
inconsistent arities.
- semantic error: variable 'foo' modified during 'foreach'
The array foo is being modified (being assigned to or deleted from)
within an active foreach loop. This invalid operation is also
detected within a function called from within the loop.
- semantic error: probe point mismatch at position N,
while resolving probe point foo
A probe point was named that
neither directly understood by systemtap, nor defined as an alias by a
tapset script. The divergence from the ``tree'' of probe point
namespace is at position N (starting with zero at left).
- semantic error: no match for probe point, while resolving
probe point foo
A probe point cannot be resolved for any of
a variety of reasons. It may be a debuginfo-based probe point such as
kernel.function("foobar") where no foobar function was
found. This can occur if the script specifies a wildcard on function
names, or an invalid file name or source line number.
- semantic error: unresolved target-symbol expression
A
target variable was referred to in a probe handler that was not
resolvable. Or, a target variable is not valid at all in a context
such as a script function. This variable may have been elided by an
optimizing compiler, or may not have a suitable type, or there might
just be an annoying bug somewhere. Try again with a slightly
different probe point (use statement() instead of
function()) to search for a more cooperative neighbour in the
same area.
- semantic error: libdwfl failure
There was a
problem processing the debugging information. It may simply be
missing, or may have some consistency / correctness problems. Later
compilers tend to produce better debugging information, so if you can
upgrade and recompile your kernel/application, it may help.
- semantic error: cannot find foo debuginfo
Similarly,
suitable debugging information was not found. Check that your kernel
build/installation includes a matching version of debugging data.
Usually, run-time errors cause a script to terminate. Some of these
may be caught with the try { ... } catch { ... } construct.
- WARNING: Number of errors: N, skipped probes: M
Errors and/or skipped probes occurred during this run.
- division by 0
The script code performed an invalid
division.
- aggregate element not found
An statistics extractor
function other than @count was invoked on an aggregate that has
not had any values accumulated yet. This is similar to a division by
zero.
- aggregation overflow
An array containing aggregate
values contains too many distinct key tuples at this time.
- MAXNESTING exceeded
Too many levels of function call nesting
were attempted.
- MAXACTION exceeded
The probe handler attempted to execute
too many statements.
- kernel/user string copy fault at 0xaddr
The probe handler attempted to copy a string from kernel or user space
at an invalid address.
- pointer dereference fault
There was a fault encountered during a pointer dereference operation such
as a target variable evaluation.
Next: C. Acknowledgments
Up: tutorial
Previous: A. Glossary
Contents