error::fault - memory access faults
Read or write faults can occur during the operation of a systemtap
script, if the script causes dereferencing of a pointer that turns out
to be invalid. This can be caused by using context variables that do
not happen to have valid values, or perhaps references to memory that
is unavailable at that moment due to paging.
These fault conditions are benign because they are caught by the sys‐
temtap runtime, which cleanly terminates the script. If quick termina‐
tion is not desired, consider using the --skip-badvars or --sup‐
press-handler-errors or -DMAXERRORS=NN stap options, or wrapping rele‐
vant parts of the probe handlers in a try/catch block.
It may be possible to adjust the target program, to make it more likely
that needed context variables are paged in when systemtap looks for
them. Consider adding some lightweight processing on the key vari‐
ables, like a strlen(foo) for a string, or iterating across elements of
an array or linked list, or touching a few bytes of a heap-allocated
block. The idea is to trigger any page faults in the target program,
before systemtap would need to (but can't).