strace komutu ile sistem çağrılarını ve sinyalleri izleme

Linux'te bir process'in yaptığı çağrıları izlemek, runtime 'de neler yaptığına ilişkin fikir vermek ve sistem programlama ile ilgili testler yapmak için kullanılabilecek güzel bir linux programlarından biridir. Basitce kullanımı strace ve ardından executable dosyadır. man programını inceleyalim:



strace parametreleri:


  • -e parametresi ile sadece bir fonksiyon için çıktı üretebiliriz.

  • -o parametresi ile aşina olduğumuz üzere çıktıları bir dosyaya yönlendirebiliriz.
  • -t parametresi ile zamansal olarak sistem fonksiyonlarının çalışma dilimlerini gösterir.
  • -e trace=open ile open ile ilişkili olan fonksiyonları da ekrana basar
  • -c ise raporsal bir çağrı çıktısı üretir.



  • Var olan bir process'i de trace edebiliyoruz. Yapmamız gereken şey önce takip edilmek istenen process'in id'sini bulmak
    • ps -C firefox
         PID TTY          TIME CMD
         4029 pts/2    00:00:01 firefox
    • ardından strace komutunu çalıştırmak
      sudo strace -p 4029 -o firefox_trace.txt
ardından dosyayı okuyarak firefox'un hangi sistem çağrıları yaptığını görebiliriz.

    • tail -f firefox_trace.txt