Sürecin çıktılarını stdout’a, kendi çıktılarını stderr’e yazar. more ile sayfa sayfa görmek istiyorsanız. en basit (primitive) kullanımı aşağıdaki gibidir.
1 |
# strace <süreç> 2>&1 | more |
Strace Parametreleri:
- -e parametresi ile sadece bir fonksiyon için çıktı üretebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@omeroner ~]# strace -e "open" cd /tmp open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 open("/dev/tty", O_RDWR|O_NONBLOCK) = 3 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3 open("/usr/bin/cd", O_RDONLY) = 3 +++ exited with 0 +++ [root@omeroner ~]# |
- -o parametresi ile aşina olduğumuz üzere çıktıları bir dosyaya yönlendirebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@omeroner ~]# strace -e "open" -o /tmp/strace cd /tmp [root@omeroner ~]# more /tmp/strace open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 open("/dev/tty", O_RDWR|O_NONBLOCK) = 3 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3 open("/usr/bin/cd", O_RDONLY) = 3 +++ exited with 0 +++ [root@omeroner ~]# |
- -t parametresi ile zamansal olarak sistem fonksiyonlarının çalışma dilimlerini gösterir.
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@omeroner ~]# strace -t -e "open" cd /tmp 03:31:06 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 03:31:06 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3 03:31:06 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 03:31:06 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 03:31:06 open("/dev/tty", O_RDWR|O_NONBLOCK) = 3 03:31:06 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 03:31:06 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3 03:31:06 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3 03:31:06 open("/usr/bin/cd", O_RDONLY) = 3 03:31:06 +++ exited with 0 +++ [root@omeroner ~]# |
- -c ise raporsal bir çağrı çıktısı üretir.
1 2 3 4 5 6 7 |
[root@omeroner ~]# strace -c -t -e "open" cd /tmp % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 100.00 0.000048 5 9 open ------ ----------- ----------- --------- --------- ---------------- 100.00 0.000048 9 total |
- -p herhangi bir çalışan uygulamayı
<PID>
değerini vermek suretiyle trace edebiliriz.
1 |
# strace -f -c -p $(pidof mysqld) |