On Thu, Mar 16, 2017 at 12:17:08AM +0530, Rishi Bhatt wrote: > linux/*/syscallent.h part is modified automatically by: > > git grep -Fl 'SEN(clock_' linux/ | xargs sed -i \ > 's/0\(,[[:space:]]*SEN(clock_\)/TC\1/'
I think TC is too short, let's use 3-letter abbreviations for new classes, e.g. TCL. > * syscall.c: Alias TC to TRACE_CLOCK around syscallent.h inclusion. > * sysent.h (TRACE_CLOCK): New definition. > * qualify.c (lookup_class): Add TRACE_CLOCK for "%clock". > * strace.1 (.SS Filtering): Add information about %clock syscall class. > * linux/32/syscallent.h: Add TSC flag for sched_* sycalls. For sched_* sycalls? Really? When you do a cut-n-paste from commit 811638e9c1805438a63c14f9704b8b00ac922623, please do not copy its typos. > * linux/64/syscallent.h: Likewise. > * linux/alpha/syscallent.h: Likewise. > * linux/arm/syscallent.h: Likewise. > * linux/avr32/syscallent.h: Likewise. > * linux/bfin/syscallent.h: Likewise. > * linux/crisv10/syscallent.h: Likewise. > * linux/hppa/syscallent.h: Likewise. > * linux/i386/syscallent.h: Likewise. > * linux/ia64/syscallent.h: Likewise. > * linux/m68k/syscallent.h: Likewise. > * linux/microblaze/syscallent.h: Likewise. > * linux/mips/syscallent-n32.h: Likewise. > * linux/mips/syscallent-n64.h: Likewise. > * linux/mips/syscallent-o32.h: Likewise. > * linux/powerpc/syscallent.h: Likewise. > * linux/powerpc64/syscallent.h: Likewise. > * linux/s390/syscallent.h: Likewise. > * linux/s390x/syscallent.h: Likewise. > * linux/sh/syscallent.h: Likewise. > * linux/sh64/syscallent.h: Likewise. > * linux/sparc/syscallent.h: Likewise. > * linux/sparc64/syscallent.h: Likewise. > * linux/x32/syscallent.h: Likewise. > * linux/x86_64/syscallent.h: Likewise. > * linux/xtensa/syscallent.h: Likewise. > * tests/Makefile.am (DECODER_TESTS): Add clock.test. > * tests/ksysent.c: Define TC to 0. > * tests/nsyscalls.c: Define TC to 0 Use "Likewise". > * tests/clock.test: New test. The idiom is * tests/clock.test: New test. * tests/Makefile.am (DECODER_TESTS): Add it. [...] > --- a/strace.1 > +++ b/strace.1 > @@ -429,6 +429,9 @@ Trace all memory mapping related system calls. > .BR "\-e\ trace" = %sched > Trace all scheduler-related (sched_*) system calls. > .TP > +.BR "\-e\ trace" = %clock > +Trace all clock-related (clock_*) system calls Please terminate sentences. > +.TP > \fB\-e\ abbrev\fR=\,\fIset\fR > Abbreviate the output from printing each member of large structures. > The default is > diff --git a/syscall.c b/syscall.c > index 569055f2..c7980c40 100644 > --- a/syscall.c > +++ b/syscall.c > @@ -77,6 +77,7 @@ > #define TS TRACE_SIGNAL > #define TM TRACE_MEMORY > #define TSC TRACE_SCHED > +#define TC TRACE_CLOCK > #define NF SYSCALL_NEVER_FAILS > #define MA MAX_ARGS > #define SI STACKTRACE_INVALIDATE_CACHE > @@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = { > #undef TS > #undef TM > #undef TSC > +#undef TC > #undef NF > #undef MA > #undef SI > diff --git a/sysent.h b/sysent.h > index f4eaa930..7e95ab3a 100644 > --- a/sysent.h > +++ b/sysent.h > @@ -22,5 +22,5 @@ typedef struct sysent { > #define TRACE_INDIRECT_SUBCALL 02000 /* Syscall is an indirect > socket/ipc subcall. */ > #define COMPAT_SYSCALL_TYPES 04000 /* A compat syscall that uses compat > types. */ > #define TRACE_SCHED 010000 /* Trace scheduler-related syscalls. */ > - > +#define TRACE_CLOCK 020000 /*Trace clock-related syscalls. */ Why removing the empty line. > #endif /* !STRACE_SYSENT_H */ > diff --git a/tests/Makefile.am b/tests/Makefile.am > index c5c124c0..7a22d421 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -503,6 +503,7 @@ DECODER_TESTS = \ > chown.test \ > chown32.test \ > chroot.test \ > + clock.test \ > clock_adjtime.test \ > clock_nanosleep.test \ > clock_xettime.test \ > diff --git a/tests/clock.test b/tests/clock.test > new file mode 100755 > index 00000000..8e3e1bd2 > --- /dev/null > +++ b/tests/clock.test > @@ -0,0 +1,41 @@ > +#!/bin/sh > +# Check -e trace=%clock option Please terminate sentences. This file is modelled after tests/sched.test which has been changed yesterday, please rebase. > +# Positive Test cases. > +CLOCK_TESTS='40 clock_nanosleep > +37 clock_adjtime > +36 clock_xettime' > + > +# Negative Test Cases. > +NON_CLOCK_TESTS='11 fchdir > +27 futex > +10 fsync' > + > +# Declaring the init.sh > +. "${srcdir=.}/init.sh" > + > +# > +# Tracing Clock_* related syscalls. > +# > +echo "$CLOCK_TESTS" | while read w i > +do > + run_prog ./$i > /dev/null > + run_strace -a$w -e trace=%clock,setitimer ./$i > "$EXP" > + match_diff "$LOG" "$EXP" > + > +done > + > +echo '+++ exited with 0 +++' > "$EXP" > +# > +# Tracing NON_CLOCK related syscalls > +# /dev/null for ignoring print statements > +# from the executable. Everybody knows what /dev/null is for, no need to mention it. -- ldv
pgpuaSfddlk0A.pgp
Description: PGP signature
------------------------------------------------------------------------------ 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