These patches implement new filtering architecture. Currently supported actions: trace, inject, fault, read, write, raw, abbrev, verbose. Currently supported filters: syscall, fd, path. New option for new filters is -m "...". Changes in filtering language: * Delimiter of action arguments is now ';'. * Supported logical operators: and, or, not. Also C-like forms of these operators are supported: &&, ||, !. * Syscall filter accepts syscalls' set, class or regex with old set description syntax.
Changes since v1: * qualify.c is now splitted in separate commit. Changes since v2: * Fixed segmentation fault in inject/fault parsing. * basic_filters.c (run_fd_filter): Changed returns to true/false. Changes since v3: * Fixed invalid accounting of syscalls for inject/fault actions. * Fixed order of filter actions with same priority. * Refactored inject arguments parsing. * Refactored fd filtering. * Refactored tests for syscall set syntax. * Improved diagnostics of filtering errors. * Rewritten algorithms of parsing for new filtering language. Nikolay Marchuk (6): Split qualify.c into basic_filters.c and filter_qualify.c Introduce new filtering architecture Improve fd filtering Optimize default filtering Implement new filtering language parsing Add path filter Makefile.am | 9 +- basic_actions.c | 145 ++++++++ basic_filters.c | 504 ++++++++++++++++++++++++++ defs.h | 14 +- filter.c | 144 ++++++++ filter.h | 73 ++++ filter_action.c | 245 +++++++++++++ filter_expression.c | 361 +++++++++++++++++++ filter_parse.c | 147 ++++++++ filter_qualify.c | 320 +++++++++++++++++ pathtrace.c | 170 +++++---- qualify.c | 697 ------------------------------------ strace.c | 17 +- syscall.c | 23 +- tests/Makefile.am | 1 + tests/filtering_syscall-syntax.test | 105 ++++++ tests/options-syntax.test | 17 - tests/qual_fault-syntax.test | 17 +- tests/qual_inject-syntax.test | 18 +- 19 files changed, 2173 insertions(+), 854 deletions(-) create mode 100644 basic_actions.c create mode 100644 basic_filters.c create mode 100644 filter.c create mode 100644 filter.h create mode 100644 filter_action.c create mode 100644 filter_expression.c create mode 100644 filter_parse.c create mode 100644 filter_qualify.c delete mode 100644 qualify.c create mode 100755 tests/filtering_syscall-syntax.test -- 2.1.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel