A Errors
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
Many error messages contain a man-page key like this [man foo]. This indicates that more details are available as a
man page foo, so use the % man foo command to view it.
A.1 Parse errors
-
- 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 4.3), but was run without the -g
(guru mode) option. Confirm that the constructs are used safely, then try again with -g.
A.2 Type errors
-
- 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.
A.3 Symbol errors
-
- 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.
A.4 Probing errors
-
- 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.
A.5 Runtime errors
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.