Nikolay Marchuk 9aeb73fb6b Implement new filtering language parsing
* basic_filters.c (lookup_class, qualify_syscall_class, qualify_syscall,
qualify_syscall_tokens, parse_syscall_filter, qualify_tokens,
parse_fd_filter, parse_path_filter): Add qualify_mode argument.
(qualify_tokens, qualify_syscall_tokens): Use set inversion only in
qualify mode.
(lookup_class): Use deprecated class names only in qualify mode.
* defs.h (qualify): Remove declaration.
(filtering_parse): Add new declaration.
* filter.c (struct filter_type, parse_filter):
Add bool argument to parse_*_filter declarations.
* filter.h (parse_filter_action, parse_qualify_action,
parse_filter_expression): Add new declarations.
(parse_filter, qualify_tokens, qualify_syscall_tokens):
Add qualify_mode argument.
(DECL_FILTER): Add bool argument to parse_*_filter declarations.
* filter_action.c (parse_filter_action): Add new parsing function.
(inject_path_tracing): Use filtering_parse instead of qualify.
* filter_expression.c (parse_filter_expression): Implement parsing of filter
expression.
(parse_operator, push_operator, is_higher_priority): Add helper functions.
(is_space_ascii, is_allowed_in_name): Add new declarations.
* filter_parse.c: New file.
* filter_qualify.c (qualify_read, qualify_write, qualify_signals,
qualify_trace, qualify_abbrev, qualify_verbose, qualify_raw,
qualify_inject_common, qualify_fault, qualify_inject): Use main_part and args
arguments.
* strace.c (init): Use filtering_parse instead of qualify.
* Makefile.am (strace_SOURCES): Add filter_parse.c.

[ldv: simplify *_qualify_mode]
[ldv: eliminate parse_null]
[ldv: optimize lookup_class]
[ldv: use loop initial declarations]
[ldv: ATTRIBUTE_FALLTHROUGH]
2018-06-13 15:05:09 +00:00
2018-06-06 15:10:37 +00:00
2018-04-04 20:32:42 +00:00
2018-05-17 22:54:35 +03:00
2017-06-17 22:54:08 +00:00
2018-01-07 03:11:21 +00:00
2015-07-20 22:03:07 +00:00
2018-02-13 22:00:00 +00:00
2018-03-28 04:29:22 +00:00
2017-05-22 17:33:51 +00:00
2018-04-05 01:40:00 +00:00
2017-07-08 01:49:00 +00:00
2017-07-08 01:49:00 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2009-07-08 21:01:21 +00:00
2015-07-20 22:03:07 +00:00
2018-02-15 11:07:03 +00:00
2018-02-13 22:00:00 +00:00
2017-07-24 12:10:54 +00:00
2017-07-24 12:10:54 +00:00
2017-12-14 00:05:04 +00:00
2015-08-28 08:46:23 +00:00
2018-05-03 00:09:53 +00:00
2017-05-22 17:33:51 +00:00
2018-04-12 23:00:28 +00:00
2018-05-03 00:09:53 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-09-05 10:09:10 +02:00
2017-05-22 17:33:51 +00:00
2018-04-19 18:03:58 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-09-05 10:09:10 +02:00
2018-04-13 01:00:09 +02:00
2017-05-22 17:33:51 +00:00
2017-09-05 10:09:10 +02:00
2017-03-05 16:29:41 +00:00
2018-05-28 17:34:50 +00:00
2017-06-17 22:54:08 +00:00
2015-11-22 23:10:12 +00:00
2018-04-13 01:00:09 +02:00
2018-04-13 01:00:09 +02:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-09-17 12:04:11 +00:00
2018-03-29 16:00:18 +00:00
2017-05-22 17:33:51 +00:00
2018-04-05 01:40:00 +00:00
2018-04-05 01:40:00 +00:00
2018-05-30 10:13:06 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-04-05 01:40:00 +00:00
2015-09-16 00:14:55 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-06-07 18:02:01 +00:00
2016-12-27 23:32:44 +00:00
2017-05-22 17:33:51 +00:00
2017-06-17 22:54:08 +00:00
2018-06-13 15:05:09 +00:00
2018-05-28 17:34:50 +00:00
2018-02-13 22:00:00 +00:00
2016-12-26 10:43:35 +00:00
2017-07-09 18:43:34 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2018-04-05 01:40:00 +00:00
2018-04-05 01:40:00 +00:00
2018-04-05 01:40:00 +00:00
2017-05-22 17:33:51 +00:00
2018-03-16 00:55:58 +00:00
2018-02-21 23:03:27 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-04-05 01:40:00 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2018-04-05 01:40:00 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2018-02-11 00:26:09 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-06-17 22:54:08 +00:00
2018-04-05 01:40:00 +00:00
2017-12-03 19:53:48 +01:00
2018-02-13 22:00:00 +00:00
2018-02-13 22:00:00 +00:00
2016-12-01 00:05:09 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-06-17 22:54:08 +00:00
2017-05-22 17:33:51 +00:00
2017-05-22 17:33:51 +00:00
2017-07-24 12:10:54 +00:00
2018-04-05 01:40:00 +00:00
2018-05-15 21:41:47 +00:00
2018-04-05 01:40:00 +00:00
2017-12-23 02:53:54 +00:00
2018-04-05 01:40:00 +00:00
2015-12-07 00:38:38 +00:00
2017-09-05 10:09:10 +02:00
2018-04-05 01:40:00 +00:00
2017-01-20 18:30:11 +00:00
2017-05-22 17:33:51 +00:00
2018-02-13 22:00:00 +00:00

strace - the linux syscall tracer

This is strace -- a diagnostic, debugging and instructional userspace utility with a traditional command-line interface for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as ptrace.

strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYING for details.

See the file NEWS for information on what has changed in recent versions.

Please read the file INSTALL-git for installation instructions.

The user discussion and development of strace take place on the strace mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to strace-devel@lists.strace.io. The mailing list archives are available at https://lists.strace.io/pipermail/strace-devel/ and other archival sites.

The GIT repository of strace is available at GitHub and GitLab.

The latest binary strace packages are available in many repositories, including OBS, Fedora rawhide, and Sisyphus.

Build Status Code Coverage

Description
No description provided
Readme 17 MiB
Languages
C 92.2%
Shell 3.4%
M4 1.4%
Makefile 0.8%
Roff 0.7%
Other 1.5%