Могут ли два процесса присоединиться к одному и тому же PID через ptrace

Итак, название говорит само за себя.

Возможно ли, что у одного процесса есть два трассировщика?

Я играю с ptrace и вижу, что всякий раз, когда кто-то присоединяется к процессу, в / proc // status в TracerPID будет PID трассировщика. Однако возможно ли иметь два трассера?

У меня есть две программы (трассировщик и трассировка). И я запустил трассировку в режиме отладки, а затем я запустил трассировщик и получил ошибку Операция не разрешена (даже с правами root).

С Уважением,
golobich

0

Решение

Они не могут. Это косвенно подтверждается на странице руководства 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).
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]