Существует два варианта связывания, которые помогут вам получить то, что вы хотите:
-c
выведет таблицу всех системных вызовов, выполняемых командой, а также количество раз, которое онибыли вызваны и загрузка процессора.
$ strace -c ls
Desktop Documents Downloads Music Pictures Public Templates Videos
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
31.07 0.000653 20 32 mmap
9.94 0.000209 20 10 mprotect
9.80 0.000206 12 16 read
8.28 0.000174 15 11 close
7.61 0.000160 16 10 fstat
6.90 0.000145 16 9 openat
2.47 0.000052 17 3 3 ioctl
...
- Опция
-o
отправит вывод strace в файл, поэтому он не будет смешиваться с выводом вашего процесса.
Следующая команда запустит команду ls
, перенаправив ее вывод в /dev/null
и отправит вывод strace в сценарий awk
для извлечения последнего столбца:
$ strace -o >(awk '$1 ~ /^-----/ { toprint = !toprint; next } { if (toprint) print $NF }') \
-c ls >/dev/null 2>/dev/null
mmap
mprotect
read
close
fstat
openat
ioctl
...