Чи є еквівалент тому, що робить -Tі -Uопція trussутиліти Solaris в Linux.
Вони повинні вказати системний виклик ( -T) або функцію бібліотеки ( -U), яка при виклику відстеженої програми спричинить його зупинку.
Або, якщо говорити інакше, я хочу, щоб будь-який процес, розпочатий відстежуваною програмою, був зупинений (як би вбитий SIGSTOP), як тільки він робить заданий системний дзвінок або заданий виклик функції спільної бібліотеки.
straceа ltraceв Linux надають велику частину наборів функцій Solaris truss, але вони, схоже, не роблять цього.
Наприклад:
truss -f -T open cmd
Хотілося б strace -f cmdза винятком того, що якщо процес, який виконує cmdабо хтось із його нащадків, викликає будь-яку openсистему, він буде негайно зупинений (і я можу відновити його пізніше за моїм зручністю)
У деяких випадках я міг би скористатися gdbфункцією 's catch syscall, але я шукав рішення, яке зручно слідкувати за вилами та продовжувати робити це для всіх роздрібнених процесів і продовжувати робити це навіть після execves.
Здається, я згадую якусь утиліту, яка дає однакові функціональні можливості, навіть одну (або параметри тієї самої утиліти) одношаговим програмам між деякими появами деякого syscall віддалено, як це, але пам'ять мені не вдається, я навіть не можу бути впевнений що було в Linux.
follow-exec-mode), я експериментую з цим. Це не відповідає строго на питання, але може бути досить гарним для того, що мені потрібно.
truss.