Apakah ada yang setara dengan apa -T
dan -U
opsi truss
utilitas Solaris tidak di Linux.
Itu adalah untuk menentukan panggilan sistem ( -T
) atau fungsi perpustakaan ( -U
) yang ketika dipanggil oleh aplikasi yang dilacak akan menyebabkannya berhenti.
Atau, dikatakan sebaliknya, saya ingin proses apa pun yang dimulai oleh aplikasi yang dilacak dihentikan (seolah-olah dibunuh oleh SIGSTOP) segera setelah itu membuat panggilan sistem yang diberikan atau panggilan fungsi perpustakaan bersama yang diberikan.
strace
dan ltrace
di Linux menyediakan banyak fitur dari Solaris truss
, tetapi mereka tampaknya tidak melakukan itu.
Contohnya:
truss -f -T open cmd
Akan seperti strace -f cmd
kecuali bahwa jika proses mengeksekusi cmd
atau keturunannya melakukan open
panggilan sistem apa pun , itu akan segera dihentikan (dan saya dapat melanjutkannya nanti sesuai keinginan saya)
Dalam beberapa kasus, saya bisa menggunakan gdb
itu catch syscall
, tetapi saya sedang mencari solusi yang dapat dengan mudah mengikuti garpu dan terus melakukannya untuk semua proses bercabang dan terus melakukannya bahkan setelah execve
itu.
Saya sepertinya mengingat beberapa utilitas yang memberikan fungsionalitas yang sama, bahkan satu (atau opsi untuk utilitas yang sama) untuk aplikasi satu langkah di antara beberapa kejadian beberapa syscall jarak jauh seperti itu, tetapi memori saya gagal, saya bahkan tidak bisa memastikan itu di Linux.
follow-exec-mode
), saya bereksperimen dengan itu. Tidak sepenuhnya menjawab pertanyaan, tetapi mungkin cukup baik untuk apa yang saya butuhkan.
truss
manual Solaris .