Итак, название говорит само за себя.
Возможно ли, что у одного процесса есть два трассировщика?
Я играю с ptrace и вижу, что всякий раз, когда кто-то присоединяется к процессу, в / proc // status в TracerPID будет PID трассировщика. Однако возможно ли иметь два трассера?
У меня есть две программы (трассировщик и трассировка). И я запустил трассировку в режиме отладки, а затем я запустил трассировщик и получил ошибку Операция не разрешена (даже с правами root).
С Уважением,
golobich
Они не могут. Это косвенно подтверждается на странице руководства ptrace:
EPERM The specified process cannot be traced. This could be because
the tracer has insufficient privileges (the required capability
is CAP_SYS_PTRACE); unprivileged processes cannot trace pro‐
cesses that they cannot send signals to or those running set-
user-ID/set-group-ID programs, for obvious reasons. Alterna‐
tively, the process may already be being traced, or (on kernels
before 2.6.26) be init(1) (PID 1).
Других решений пока нет …