How to understand "?" in probe alias?

Frank Ch. Eigler fche@redhat.com
Fri Nov 13 14:00:00 GMT 2015


Nan Xiao <xiaonan830818@gmail.com> writes:

> [...]
> probe vm.pagefault = kernel.function("__handle_mm_fault@mm/memory.c") ?,
>                      kernel.function("handle_mm_fault@mm/memory.c") ?
> [...]  How to understand "?" in probe alias? After checking Language
> reference [...] I can't find the explanations of it.

You're right; that particular book doesn't seem to mention it.
But [man stap] refers to [man stapprobes], which includes:


    However, a probe point may be followed by a "?" character, to
    indicate that it is optional, and that no error should result if
    it fails to resolve. Optionalness passes down through all levels
    of alias/wildcard expansion. Alternately, a probe point may be
    followed by a "!" character, to indicate that it is both optional
    and sufficient. (Think vaguely of the Prolog cut operator.) If it
    does resolve, then no further probe points in the same
    comma-separated list will be resolved. Therefore, the "!"
    sufficiency mark only makes sense in a list of probe point
    alternatives.


- FChE



More information about the Systemtap mailing list