ptrace: Операция не разрешена при присоединении к зомби-процессу

ptrace: Операция не разрешена при присоединении к зомби-процессу

У меня есть воспроизводимая ситуация, когда экземпляр компилятора переходит в состояние зомби, когда я пересобираю пакет, но gdbне позволяет мне присоединить его:

serenity ~ # ps ax | grep defunct
11351 pts/1    Z+     0:00 [x86_64-pc-linux] <defunct>
21838 pts/5    S+     0:00 grep --colour=auto defunct
serenity ~ # gdb -p 11351
GNU gdb (Gentoo 7.10.1 vanilla) 7.10.1
[snip]
Attaching to process 11351
warning: process 11351 is a zombie - the process has already terminated
ptrace: Operation not permitted.
(gdb) 

Этот вопроспредполагает, что проблема в proc.sys.kernel.yama.ptrace_scope, или что я не являюсь пользователем root, но sysctl отсутствует в моей системе, и яявляюсьзапуск от имени root:

serenity ~ # sysctl -a | grep ptrace
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp4s0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
serenity ~ # whoami
root
serenity ~ # 

Для справки, моя версия ядра — 4.9.16-gentoo.

решение1

Как указано в ответе на ваш вопрос, зомби-процесс — это процесс, выполнение которого завершено, поэтому вы никогда не сможете подключиться к нему с помощью gdb. Сейчас это всего лишь запись в таблице процессов ядра без какого-либо соответствующего процесса или ресурсов, поэтому gdb не к чему подключиться.

Единственная причина, по которой эта запись в таблице процессов, помеченная как зомби, существует, заключается в необходимости считывания ее статуса завершения.

Связанный контент