プロセスまたはプログラムが作成しているさまざまなタイプのシステムコールの数を見つけようとしています。以下のように、各システムコールの呼び出しの総数を取得するために、次のことができることを知っています。
strace -c cat abc.txt
上記の出力はコマンドです。
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
-nan 0.000000 0 10 read
-nan 0.000000 0 1 write
-nan 0.000000 0 12 open
-nan 0.000000 0 14 close
-nan 0.000000 0 12 fstat
-nan 0.000000 0 28 mmap
-nan 0.000000 0 16 mprotect
-nan 0.000000 0 3 munmap
-nan 0.000000 0 3 brk
-nan 0.000000 0 2 rt_sigaction
-nan 0.000000 0 1 rt_sigprocmask
-nan 0.000000 0 2 ioctl
-nan 0.000000 0 1 1 access
-nan 0.000000 0 1 execve
-nan 0.000000 0 1 fcntl
-nan 0.000000 0 2 getdents
-nan 0.000000 0 1 getrlimit
-nan 0.000000 0 1 statfs
-nan 0.000000 0 1 arch_prctl
-nan 0.000000 0 2 1 futex
-nan 0.000000 0 1 set_tid_address
-nan 0.000000 0 1 set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 116 2 total
ご覧のとおり、行われた syscall の総数が返されます116
。この場合、いくつの異なるタイプのシステムコールが行われたかを知る必要があるだけです22
。
を使用して1行でそれを行う方法はありstrace
ますか?