Có tương đương với những gì -T
và -U
tùy chọn của truss
tiện ích Solaris làm trên Linux không.
Đó là để chỉ định một lệnh gọi hệ thống ( -T
) hoặc hàm thư viện ( -U
) mà khi được gọi bởi ứng dụng theo dõi sẽ khiến nó dừng lại.
Hoặc, nói cách khác, tôi muốn bất kỳ quá trình nào được bắt đầu bởi một ứng dụng theo dõi bị dừng lại (như thể bị SIGSTOP giết) ngay khi nó thực hiện một cuộc gọi hệ thống nhất định hoặc một cuộc gọi chức năng thư viện dùng chung.
strace
và ltrace
trên Linux cung cấp phần lớn các tính năng của Solaristruss
, nhưng dường như họ không làm điều đó.
Ví dụ:
truss -f -T open cmd
Sẽ giống như strace -f cmd
ngoại trừ rằng nếu quá trình thực thi cmd
hoặc bất kỳ hậu duệ của nó làm bất kỳopen
cuộc gọi hệ thống , nó sẽ bị dừng ngay lập tức (và tôi có thể tiếp tục lại sau này một cách thuận tiện)
Trong một số trường hợp, tôi có thể sử dụng gdb
's catch syscall
, nhưng tôi đang tìm kiếm một giải pháp mà có thể thoải mái làm theo dĩa và tiếp tục làm việc đó cho tất cả các quá trình chia hai và tiếp tục làm việc đó ngay cả sau khi execve
s.
Tôi dường như nhớ lại một số tiện ích có cùng chức năng, thậm chí một (hoặc tùy chọn cho cùng tiện ích đó) cho các ứng dụng một bước giữa một số lần xuất hiện của một tòa nhà nào đó từ xa như thế, nhưng tôi không chắc chắn, tôi không thể chắc chắn đó là trên Linux.
follow-exec-mode
), tôi đang thử nghiệm điều đó. Không trả lời đúng câu hỏi, nhưng có thể đủ tốt cho những gì tôi cần.
truss
.