Implement -e trace=%stat option

linux/*/syscallent*.h part is updated automatically by:

    sed -i '/statx/! s/TF|TSTA,/TF|TST|TSTA,/' linux/*/syscallent*.h

* sysent.h (TRACE_STAT): New macro.
* syscall.c: Alias LST to TRACE_STAT around syscallent.h inclusion.
* qualify.c (lookup_class): Add TRACE_STAT for "%stat".
* strace.1 (.SS Filtering): Add information about %stat syscall class.
* NEWS: Mention this change.
* linux/aarch64/syscallent.h (stat): Add TST flag.
* linux/ia64/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/arm/syscallent.h (oldstat, stat, stat64): Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/crisv10/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/avr32/syscallent.h (stat, stat64): Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/sparc64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
* linux/powerpc64/syscallent.h (oldstat, stat): Likewise.
* linux/alpha/syscallent.h (osf_old_stat, osf_stat, stat, stat64): Likewise.
* linux/mips/syscallent-compat.h (bsd43_oldstat, bsd43_stat, posix_stat,
svr4_stat, svr4_xstat, sysv_stat, sysv_xstat): Likewise.
* tests/gen_tests.in (trace_stat): New entry.
* tests/trace_stat.in: New file.
* tests/Makefile.am (EXTRA_DIST): Add it.
* tests/ksysent.c (TST): New macro, defined to 0.
* tests/nsyscalls.c: Likewise.
This commit is contained in:
Eugene Syromyatnikov 2017-04-18 03:14:52 +02:00 committed by Dmitry V. Levin
parent 9a36c8e55d
commit e15d00536b
36 changed files with 79 additions and 64 deletions

1
NEWS
View File

@ -9,6 +9,7 @@ Noteworthy changes in release ?.?? (????-??-??)
* Improvements
* Optimized syscall filtering.
* Enhanced decoding of sched_setattr syscall.
* Added -e trace=%stat option for tracing variants of stat syscall.
* Added -e trace=%lstat option for tracing variants of lstat syscall.
* Added -e trace=%fstat option for tracing variants of fstat and fstatat
syscalls.

View File

@ -27,7 +27,7 @@
[1035] = { 3, TF, SEN(readlink), "readlink" },
[1036] = { 2, TF, SEN(symlink), "symlink" },
[1037] = { 2, TF, SEN(utimes), "utimes" },
[1038] = { 2, TF|TSTA, SEN(stat), "stat" },
[1038] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[1039] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[1040] = { 1, TD, SEN(pipe), "pipe" },
[1041] = { 2, TD, SEN(dup2), "dup2" },
@ -38,7 +38,7 @@
[1046] = { 4, TD|TN, SEN(sendfile64), "sendfile" },
[1047] = { 2, TD, SEN(ftruncate), "ftruncate" },
[1048] = { 2, TF, SEN(truncate), "truncate" },
[1049] = { 2, TF|TSTA, SEN(stat), "stat" },
[1049] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[1050] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[1051] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[1052] = { 3, TD, SEN(fcntl), "fcntl" },

View File

@ -64,7 +64,7 @@
[ 35] = { 5, 0, SEN(printargs), "osf_fchflags" }, /* not implemented */
[ 36] = { 0, 0, SEN(sync), "sync" },
[ 37] = { 2, TS, SEN(kill), "kill" },
[ 38] = { 5, TF|TSTA, SEN(printargs), "osf_old_stat" }, /* not implemented */
[ 38] = { 5, TF|TST|TSTA, SEN(printargs), "osf_old_stat" }, /* not implemented */
[ 39] = { 2, 0, SEN(setpgid), "setpgid" },
[ 40] = { 5, TF|TLST|TSTA, SEN(printargs), "osf_old_lstat" }, /* not implemented */
[ 41] = { 1, TD, SEN(dup), "dup" },
@ -93,7 +93,7 @@
[ 64] = { 0, 0, SEN(getpagesize), "getpagesize" },
[ 65] = { 5, TM, SEN(printargs), "osf_mremap" }, /* not implemented */
[ 66] = { 0, TP, SEN(vfork), "vfork" },
[ 67] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 67] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 68] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 69] = { 5, TM, SEN(printargs), "osf_sbrk" }, /* not implemented */
[ 70] = { 5, 0, SEN(printargs), "osf_sstk" }, /* not implemented */
@ -227,7 +227,7 @@
[221] = { },
[222] = { 5, 0, SEN(printargs), "osf_security" }, /* not implemented */
[223] = { 5, 0, SEN(printargs), "osf_kloadcall" }, /* not implemented */
[224] = { 2, TF|TSTA, SEN(printargs), "osf_stat" },
[224] = { 2, TF|TST|TSTA, SEN(printargs), "osf_stat" },
[225] = { 2, TF|TLST|TSTA, SEN(printargs), "osf_lstat" },
[226] = { 2, TD|TFST|TSTA, SEN(printargs), "osf_fstat" },
[227] = { 3, TF|TSF|TSFA, SEN(osf_statfs), "osf_statfs64" },
@ -387,7 +387,7 @@
[422] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
[423] = { 4, TI, SEN(semtimedop), "semtimedop" },
[424] = { 3, TS, SEN(tgkill), "tgkill" },
[425] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[425] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[426] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[427] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[428] = { 5, 0, SEN(vserver), "vserver" }, /* not implemented */

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -221,7 +221,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" },
[193] = { 4, TF, SEN(truncate64), "truncate64" },
[194] = { 4, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -55,7 +55,7 @@
[ 27] = { 1, 0, SEN(alarm), "alarm" },
[ 28] = { 0, TS, SEN(pause), "pause" },
[ 29] = { 2, TF, SEN(utime), "utime" },
[ 30] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 30] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 31] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[ 32] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 33] = { 2, TF, SEN(access), "access" },
@ -193,7 +193,7 @@
[165] = { 3, TN, SEN(recvmsg), "recvmsg" },
[166] = { 3, TF, SEN(truncate64), "truncate64" },
[167] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[168] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[168] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[169] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[170] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[171] = { 2, TF, SEN(pivotroot), "pivot_root" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "chown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -221,7 +221,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "chown32" },

View File

@ -16,7 +16,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -104,7 +104,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -192,7 +192,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -20,7 +20,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown), "lchown" },
[ 17] = { 3, TN, SEN(socket), "socket" },
[ 18] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 18] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -103,7 +103,7 @@
[ 98] = { 4, TN, SEN(recv), "recv" },
[ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" },
[100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" },
[101] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[101] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[102] = { },
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -221,7 +221,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -137,7 +137,7 @@
[1117] = { 3, 0, SEN(syslog), "syslog" },
[1118] = { 3, 0, SEN(setitimer), "setitimer" },
[1119] = { 2, 0, SEN(getitimer), "getitimer" },
[1120] = { 2, TF|TSTA, SEN(stat), "stat" },
[1120] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[1121] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[1122] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[1123] = { 0, 0, SEN(vhangup), "vhangup" },
@ -227,7 +227,7 @@
[1207] = { 2, TF, SEN(pivotroot), "pivot_root" },
[1208] = { 3, TM, SEN(mincore), "mincore" },
[1209] = { 3, TM, SEN(madvise), "madvise" },
[1210] = { 2, TF|TSTA, SEN(stat), "stat" },
[1210] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[1211] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[1212] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[1213] = { 6, TP, SEN(clone), "clone2" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "chown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -221,7 +221,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "chown32" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -221,7 +221,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -16,7 +16,7 @@
[ 15] = { 0, 0, SEN(printargs), "svr4_chmod" },
[ 16] = { 0, 0, SEN(printargs), "svr4_chown" },
[ 17] = { 0, TM, SEN(printargs), "svr4_sbreak" },
[ 18] = { 0, TF|TSTA,SEN(printargs), "svr4_stat" },
[ 18] = { 0, TF|TST|TSTA,SEN(printargs), "svr4_stat" },
[ 19] = { 0, 0, SEN(printargs), "svr4_lseek" },
[ 20] = { 0, 0, SEN(printargs), "svr4_getpid" },
[ 21] = { 0, 0, SEN(printargs), "svr4_mount" },
@ -116,7 +116,7 @@
[ 120] = { 0, 0, SEN(printargs), "svr4_fchdir" },
[ 121] = { 0, 0, SEN(printargs), "svr4_readv" },
[ 122] = { 0, 0, SEN(printargs), "svr4_writev" },
[ 123] = { 0, TF|TSTA,SEN(printargs), "svr4_xstat" },
[ 123] = { 0, TF|TST|TSTA,SEN(printargs), "svr4_xstat" },
[ 124] = { 0, TF|TLST|TSTA,SEN(printargs), "svr4_lxstat" },
[ 125] = { 0, TD|TFST|TSTA,SEN(printargs), "svr4_fxstat" },
[ 126] = { 0, 0, SEN(printargs), "svr4_xmknod" },
@ -167,7 +167,7 @@
[1015] = { 0, 0, SEN(printargs), "sysv_chmod" },
[1016] = { 0, 0, SEN(printargs), "sysv_chown" },
[1017] = { 0, TM|SI, SEN(printargs), "sysv_brk" },
[1018] = { 0, TF|TSTA,SEN(printargs), "sysv_stat" },
[1018] = { 0, TF|TST|TSTA,SEN(printargs), "sysv_stat" },
[1019] = { 0, 0, SEN(printargs), "sysv_lseek" },
[1020] = { 0, 0, SEN(printargs), "sysv_getpid" },
[1021] = { 0, 0, SEN(printargs), "sysv_mount" },
@ -302,7 +302,7 @@
[1155] = { 0, 0, SEN(printargs), "sysv_socketpair" },
[1156] = { 0, 0, SEN(printargs), "sysv_sysinfo" },
[1157] = { 0, 0, SEN(printargs), "sysv_nuname" },
[1158] = { 0, TF|TSTA,SEN(printargs), "sysv_xstat" },
[1158] = { 0, TF|TST|TSTA,SEN(printargs), "sysv_xstat" },
[1159] = { 0, TF|TLST|TSTA,SEN(printargs), "sysv_lxstat" },
[1160] = { 0, TD|TFST|TSTA,SEN(printargs), "sysv_fxstat" },
[1161] = { 0, 0, SEN(printargs), "sysv_xmknod" },
@ -352,7 +352,7 @@
[2015] = { 0, 0, SEN(printargs), "bsd43_chmod" },
[2016] = { 0, 0, SEN(printargs), "bsd43_chown" },
[2017] = { 0, TM, SEN(printargs), "bsd43_sbreak" },
[2018] = { 0, TF|TSTA,SEN(printargs), "bsd43_oldstat" },
[2018] = { 0, TF|TST|TSTA,SEN(printargs), "bsd43_oldstat" },
[2019] = { 0, 0, SEN(printargs), "bsd43_lseek" },
[2020] = { 0, 0, SEN(printargs), "bsd43_getpid" },
[2021] = { 0, 0, SEN(printargs), "bsd43_oldmount" },
@ -372,7 +372,7 @@
[2035] = { 0, 0, SEN(printargs), "bsd43_ftime" },
[2036] = { 0, 0, SEN(printargs), "bsd43_sync" },
[2037] = { 0, 0, SEN(printargs), "bsd43_kill" },
[2038] = { 0, TF|TSTA,SEN(printargs), "bsd43_stat" },
[2038] = { 0, TF|TST|TSTA,SEN(printargs), "bsd43_stat" },
[2039] = { 0, 0, SEN(printargs), "bsd43_oldsetpgrp" },
[2040] = { 0, TF|TLST|TSTA,SEN(printargs), "bsd43_lstat" },
[2041] = { 0, 0, SEN(printargs), "bsd43_dup" },
@ -545,7 +545,7 @@
[3015] = { 0, 0, SEN(printargs), "posix_chmod" },
[3016] = { 0, 0, SEN(printargs), "posix_chown" },
[3017] = { 0, TM, SEN(printargs), "posix_sbreak" },
[3018] = { 0, TF|TSTA,SEN(printargs), "posix_stat" },
[3018] = { 0, TF|TST|TSTA,SEN(printargs), "posix_stat" },
[3019] = { 0, 0, SEN(printargs), "posix_lseek" },
[3020] = { 0, 0, SEN(printargs), "posix_getpid" },
[3021] = { 0, 0, SEN(printargs), "posix_mount" },

View File

@ -4,7 +4,7 @@
[6001] = { 3, TD, SEN(write), "write" },
[6002] = { 3, TD|TF, SEN(open), "open" },
[6003] = { 1, TD, SEN(close), "close" },
[6004] = { 2, TF|TSTA, SEN(stat64), "stat" },
[6004] = { 2, TF|TST|TSTA, SEN(stat64), "stat" },
[6005] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat" },
[6006] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat" },
[6007] = { 3, TD, SEN(poll), "poll" },

View File

@ -4,7 +4,7 @@
[5001] = { 3, TD, SEN(write), "write" },
[5002] = { 3, TD|TF, SEN(open), "open" },
[5003] = { 1, TD, SEN(close), "close" },
[5004] = { 2, TF|TSTA, SEN(stat), "stat" },
[5004] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[5005] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[5006] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[5007] = { 3, TD, SEN(poll), "poll" },

View File

@ -18,7 +18,7 @@
[4015] = { 2, TF, SEN(chmod), "chmod" },
[4016] = { 3, TF, SEN(chown), "lchown" },
[4017] = { 0, TM, SEN(break), "break" },
[4018] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[4018] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[4019] = { 3, TD, SEN(lseek), "lseek" },
[4020] = { 0, NF, SEN(getpid), "getpid" },
[4021] = { 5, TF, SEN(mount), "mount" },
@ -106,7 +106,7 @@
[4103] = { 3, 0, SEN(syslog), "syslog" },
[4104] = { 3, 0, SEN(setitimer), "setitimer" },
[4105] = { 2, 0, SEN(getitimer), "getitimer" },
[4106] = { 2, TF|TSTA, SEN(stat), "stat" },
[4106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[4107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[4108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[4109] = { 1, 0, SEN(olduname), "olduname" },
@ -213,7 +213,7 @@
[4210] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" },
[4211] = { 4, TF, SEN(truncate64), "truncate64" },
[4212] = { 4, TD, SEN(ftruncate64), "ftruncate64" },
[4213] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[4213] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[4214] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[4215] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[4216] = { 2, TF, SEN(pivotroot), "pivot_root" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -221,7 +221,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" },
[193] = { 4, TF, SEN(truncate64), "truncate64" },
[194] = { 4, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 5, 0, SEN(printargs), "pciconfig_read" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },

View File

@ -134,7 +134,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { },
@ -223,7 +223,7 @@
[192] = { 1, TD|TM|SI, SEN(old_mmap_pgoff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -128,7 +128,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { },

View File

@ -46,7 +46,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -134,7 +134,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -222,7 +222,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" },
[193] = { 3, TF, SEN(truncate64), "truncate64" },
[194] = { 3, TD, SEN(ftruncate64), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -44,7 +44,7 @@
[ 15] = { 2, TF, SEN(chmod), "chmod" },
[ 16] = { 3, TF, SEN(chown16), "lchown" },
[ 17] = { 0, TM, SEN(break), "break" },
[ 18] = { 2, TF|TSTA, SEN(oldstat), "oldstat" },
[ 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[ 19] = { 3, TD, SEN(lseek), "lseek" },
[ 20] = { 0, NF, SEN(getpid), "getpid" },
[ 21] = { 5, TF, SEN(mount), "mount" },
@ -132,7 +132,7 @@
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 3, 0, SEN(setitimer), "setitimer" },
[105] = { 2, 0, SEN(getitimer), "getitimer" },
[106] = { 2, TF|TSTA, SEN(stat), "stat" },
[106] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[109] = { 1, 0, SEN(olduname), "olduname" },
@ -220,7 +220,7 @@
[192] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" },
[193] = { 2, TF, SEN(truncate), "truncate64" },
[194] = { 2, TD, SEN(ftruncate), "ftruncate64" },
[195] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[195] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },
[197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" },
[198] = { 3, TF, SEN(chown), "lchown32" },

View File

@ -36,7 +36,7 @@
[ 35] = { 3, TF, SEN(chown), "chown32" },
[ 36] = { 0, 0, SEN(sync), "sync" },
[ 37] = { 2, TS, SEN(kill), "kill" },
[ 38] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 38] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 39] = { 4, TD|TN, SEN(sendfile), "sendfile" },
[ 40] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 41] = { 1, TD, SEN(dup), "dup" },
@ -137,7 +137,7 @@
[136] = { 2, TF, SEN(mkdir), "mkdir" },
[137] = { 1, TF, SEN(rmdir), "rmdir" },
[138] = { 2, TF, SEN(utimes), "utimes" },
[139] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[139] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[140] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[141] = { 3, TN, SEN(getpeername), "getpeername" },
[142] = { 6, 0, SEN(futex), "futex" },

View File

@ -35,7 +35,7 @@
[ 35] = { },
[ 36] = { 0, 0, SEN(sync), "sync" },
[ 37] = { 2, TS, SEN(kill), "kill" },
[ 38] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 38] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 39] = { 4, TD|TN, SEN(sendfile), "sendfile" },
[ 40] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 41] = { 1, TD, SEN(dup), "dup" },
@ -135,7 +135,7 @@
[136] = { 2, TF, SEN(mkdir), "mkdir" },
[137] = { 1, TF, SEN(rmdir), "rmdir" },
[138] = { 2, TF, SEN(utimes), "utimes" },
[139] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[139] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[140] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[141] = { 3, TN, SEN(getpeername), "getpeername" },
[142] = { 6, 0, SEN(futex), "futex" },

View File

@ -2,7 +2,7 @@
[ 1] = { 3, TD, SEN(write), "write" },
[ 2] = { 3, TD|TF, SEN(open), "open" },
[ 3] = { 1, TD, SEN(close), "close" },
[ 4] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 4] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 5] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[ 6] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 7] = { 3, TD, SEN(poll), "poll" },

View File

@ -2,7 +2,7 @@
[ 1] = { 3, TD, SEN(write), "write" },
[ 2] = { 3, TD|TF, SEN(open), "open" },
[ 3] = { 1, TD, SEN(close), "close" },
[ 4] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 4] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 5] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
[ 6] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 7] = { 3, TD, SEN(poll), "poll" },

View File

@ -39,8 +39,8 @@
[ 43] = { 2, TF, SEN(getcwd), "getcwd" },
[ 44] = { 2, TF, SEN(chmod), "chmod" },
[ 45] = { 3, TF, SEN(chown), "chown" },
[ 46] = { 2, TF|TSTA, SEN(stat), "stat" },
[ 47] = { 2, TF|TSTA, SEN(stat64), "stat64" },
[ 46] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 47] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" },
[ 48] = { 3, TF, SEN(chown), "lchown" },
[ 49] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" },
[ 50] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" },

View File

@ -262,6 +262,7 @@ lookup_class(const char *s)
{ "%signal", TRACE_SIGNAL },
{ "%ipc", TRACE_IPC },
{ "%network", TRACE_NETWORK },
{ "%stat", TRACE_STAT },
{ "%lstat", TRACE_LSTAT },
{ "%fstat", TRACE_FSTAT },
{ "%%stat", TRACE_STAT_LIKE },

View File

@ -436,6 +436,9 @@ Trace all file descriptor related system calls.
.BR "\-e\ trace" = memory " (deprecated)"
Trace all memory mapping related system calls.
.TP
.BR "\-e\ trace" = %stat
Trace stat syscall variants.
.TP
.BR "\-e\ trace" = %lstat
Trace lstat syscall variants.
.TP

View File

@ -76,6 +76,7 @@
#define TP TRACE_PROCESS
#define TS TRACE_SIGNAL
#define TM TRACE_MEMORY
#define TST TRACE_STAT
#define TLST TRACE_LSTAT
#define TFST TRACE_FSTAT
#define TSTA TRACE_STAT_LIKE
@ -117,6 +118,7 @@ static const struct_sysent sysent2[] = {
#undef TP
#undef TS
#undef TM
#undef TST
#undef TLST
#undef TFST
#undef TSTA

View File

@ -21,6 +21,7 @@ typedef struct sysent {
#define STACKTRACE_CAPTURE_ON_ENTER 00001000 /* Capture stacktrace on "entering" stage */
#define TRACE_INDIRECT_SUBCALL 00002000 /* Syscall is an indirect socket/ipc subcall. */
#define COMPAT_SYSCALL_TYPES 00004000 /* A compat syscall that uses compat types. */
#define TRACE_STAT 00010000 /* Trace {,*_}{,old}{,x}stat{,64} syscalls. */
#define TRACE_LSTAT 00020000 /* Trace *lstat* syscalls. */
#define TRACE_STATFS 00040000 /* Trace statfs, statfs64, and statvfs syscalls. */
#define TRACE_FSTATFS 00100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */

View File

@ -339,6 +339,7 @@ EXTRA_DIST = \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
trace_stat.in \
trace_stat_like.in \
trace_statfs.in \
trace_statfs_like.in \

View File

@ -307,6 +307,7 @@ times-fail -a12 -e trace=times
trace_fstat > stat.sample; test_trace_expr '' -e%fstat -v -Pstat.sample -P/dev/full
trace_fstatfs test_trace_expr '' -e%fstatfs
trace_lstat > stat.sample; test_trace_expr '' -e%lstat -v -Pstat.sample -P/dev/full
trace_stat > stat.sample; test_trace_expr '' -e%stat -v -Pstat.sample -P/dev/full
trace_stat_like > stat.sample; test_trace_expr '' -e%%stat -v -Pstat.sample -P/dev/full
trace_statfs test_trace_expr '' -e%statfs
trace_statfs_like test_trace_expr '' -e%%statfs

View File

@ -40,6 +40,7 @@
#define TP 0
#define TS 0
#define TM 0
#define TST 0
#define TLST 0
#define TFST 0
#define TSTA 0

View File

@ -41,6 +41,7 @@
#define TP 0
#define TS 0
#define TM 0
#define TST 0
#define TLST 0
#define TFST 0
#define TSTA 0

3
tests/trace_stat.in Normal file
View File

@ -0,0 +1,3 @@
oldstat -a32
stat -a32
stat64 -a32