next up previous contents
Next: C. Acknowledgments Up: tutorial Previous: A. Glossary   Contents

Subsections

B. 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

B..1 Parse errors

parse error: expected foo, saw bar $\ldots$
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.

B..2 Type errors

semantic error: type mismatch for identifier 'foo' $\ldots$ 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.

B..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: $\ldots$
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.

B..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 $\ldots$
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.

B..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.


next up previous contents
Next: C. Acknowledgments Up: tutorial Previous: A. Glossary   Contents