Difference between revisions of "Strace: what a process does"
From Linuxintro
imported>ThorstenStaerk (this was wrong) |
|||
Line 1: | Line 1: | ||
strace is a [[command]] to show what a command or process is doing. | strace is a [[command]] to show what a command or process is doing. | ||
− | + | Lmty00 <a href="http://epoasffumepw.com/">epoasffumepw</a>, [url=http://wxqlehcigvsy.com/]wxqlehcigvsy[/url], [link=http://jecvhrhvliac.com/]jecvhrhvliac[/link], http://cumjrpzutqtm.com/ | |
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Search for a syscall = | = Search for a syscall = |
Revision as of 20:54, 3 May 2012
strace is a command to show what a command or process is doing.
Lmty00 <a href="http://epoasffumepw.com/">epoasffumepw</a>, [url=http://wxqlehcigvsy.com/]wxqlehcigvsy[/url], [link=http://jecvhrhvliac.com/]jecvhrhvliac[/link], http://cumjrpzutqtm.com/
Search for a syscall
With strace, you can search for a special syscall. For example,
strace -e open command
will show you all files that have been touched (opened) by command. This can be used e.g. to find out where configuration changes are stored.
Performance analysis
With strace, you can find out the biggest time-consuming syscalls during a program run:
strace -c ls -R Entries Repository Root % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 67.09 0.412153 14 29664 getdents64 27.70 0.170168 11 14849 14 open 4.24 0.026043 0 123740 write 0.72 0.004443 0 14837 close 0.20 0.001204 0 14836 fstat 0.05 0.000285 285 1 execve 0.00 0.000000 0 12 read 0.00 0.000000 0 4 3 stat 0.00 0.000000 0 33 mmap 0.00 0.000000 0 18 mprotect 0.00 0.000000 0 4 munmap 0.00 0.000000 0 12 brk 0.00 0.000000 0 2 rt_sigaction 0.00 0.000000 0 1 rt_sigprocmask 0.00 0.000000 0 2 ioctl 0.00 0.000000 0 1 1 access 0.00 0.000000 0 3 mremap 0.00 0.000000 0 1 fcntl 0.00 0.000000 0 1 getrlimit 0.00 0.000000 0 1 statfs 0.00 0.000000 0 1 arch_prctl 0.00 0.000000 0 3 1 futex 0.00 0.000000 0 1 set_tid_address 0.00 0.000000 0 8 fadvise64 0.00 0.000000 0 1 set_robust_list ------ ----------- ----------- --------- --------- ---------------- 100.00 0.614296 198036 19 total
Now you go
man 2 getdents64
to find out what that syscall is about.