Introducing new filtering architecture.

Masatake YAMATO yamato at
Sun Jun 4 18:32:57 UTC 2017


I'm happy if the new filtering architecture can control the output of -k option, too.
Currently with -k option strace prints stack traces for ALL calls that are
filtered by -e option.

Ideally with -k option strace prints stack traces for SUBSET of the calls that
are filtered by -e option.

It is nice that -k own filtering rule can be defined.

Masatake YAMATO

On Sun, 4 Jun 2017 13:15:05 +0700, Nikolay Marchuk <marchuk.nikolay.a at> wrote:
> Hello,
> This message describes new filtering architecture. Please, review it and
> give me feedback.
> Filtering language.
> The format of new filtering expression is:
> 	action(expr [, argument1=value1[,argument2=value2]...)
> where action is equal with 'qualifier', expr is boolean expression with
> pcap-filter[1] syntax with strace primitives and optional arguments are
> action-specific.
> Expression primitives.
> *syscall set_of_syscalls
> *class syscall_class
> *regex /regex
> *path path
> *fd set_of_fds
> *signal set_of_signals
>  caller pid
>  callnum [<=, >=] number
>  command cmd
> ...
> Primitives marked with * are already supported by strace for some
> qualifiers.
> Filtering architecture.
> The new entry point of filtering is filter_main() in
> trace_syscall_entering after getting arguments of syscall. It runs every
> filter action and set tcp->qual_flg value.
> Filter actions have boolean expression and filters attached to it. Each

More information about the Strace-devel mailing list