--- 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 .BI "\-o " filename Write the trace output to the file .I filename diff --git a/strace.c b/strace.c index 564f1cc..1fbc80c 100644 --- a/strace.c +++ b/strace.c @@ -1524,7 +1524,7 @@ init(int argc, char *argv[]) "k" #endif "D" - "a:e:o:O:p:s:S:u:E:P:I:")) != EOF) { + "a:e:m:o:O:p:s:S:u:E:P:I:")) != EOF) { switch (c) { case 'b': if (strcmp(optarg, "execve") != 0) @@ -1601,6 +1601,10 @@ init(int argc, char *argv[]) case 'e': qualify(optarg); break; + case 'm': + print_trace_class(optarg); + exit(0); + break; case 'o': outfname = xstrdup(optarg); break; diff --git a/syscall.c b/syscall.c index c61f827..cc974d7 100644 --- 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); + 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); + } + } + } else { + error_msg_and_die("invalid class '%s'", trace_class); + } +} + +void qualify(const char *s) { const struct qual_options *opt; -- 1.9.1 ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel