[PATCH v2] Add -m flag to list system calls of a class.
Dmitry V. Levin
ldv at altlinux.org
Thu Jul 14 17:43:16 UTC 2016
On Tue, Jul 12, 2016 at 03:30:37PM +0200, Amin Khorsandiaghai wrote:
> ---
> strace.1 | 5 +++++
> strace.c | 6 +++++-
> syscall.c | 21 +++++++++++++++++++++
> 3 files changed, 31 insertions(+), 1 deletion(-)
>
> diff --git a/strace.1 b/strace.1
> index b7dddc0..5f5c1cc 100644
> --- a/strace.1
> +++ b/strace.1
> @@ -488,6 +488,11 @@ When strace can be interrupted by signals (such as pressing ^C).
> 4: fatal signals and SIGTSTP (^Z) are always blocked (useful to make
> strace -o FILE PROG not stop on ^Z).
> .TP
> +.BI "\-m " traceclass
> +List all system calls in a trace class. For example
> +.BR "\-m file"
> +prints the list of all system calls in file class.
> +.TP
Why -m?
> @@ -1601,6 +1601,10 @@ init(int argc, char *argv[])
> case 'e':
> qualify(optarg);
> break;
> + case 'm':
> + print_trace_class(optarg);
The code shouldn't cause compilation warnings.
> --- a/syscall.c
> +++ b/syscall.c
> @@ -504,6 +504,27 @@ lookup_class(const char *s)
> }
>
> void
> +print_trace_class(const char *trace_class)
> +{
> + unsigned int i;
> + unsigned pers;
> + int rc;
> +
> + if ((rc = lookup_class(trace_class)) != -1) {
> + fprintf(stdout, "List of system calls in %s class\n", trace_class);
Shouldn't there be a separate line printed for each personality?
Shouldn't shared_log be used instead of stdout?
See e.g. call_summary().
> + fprintf(stdout, "-------------------------------------\n");
> + for (pers = 0; pers < SUPPORTED_PERSONALITIES; pers++) {
> + for (i = 0; i < nsyscall_vec[pers]; i++)
> + if (sysent_vec[pers][i].sys_flags & rc) {
> + fprintf(stdout, "\t%s \n", sysent_vec[pers][i].sys_name);
This line's too long.
> + }
> + }
> + } else {
> + error_msg_and_die("invalid class '%s'", trace_class);
> + }
The preferred style is
int rc = lookup_class(trace_class);
if (rc < 0)
error_msg_and_die("invalid class '%s'", trace_class);
...
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20160714/affb6d94/attachment.bin>
More information about the Strace-devel
mailing list