ptrace: Operação não permitida ao anexar a um processo zumbi

3

Eu tenho uma situação reproduzível em que uma instância do compilador entra em um estado zumbi quando eu reconstruo um pacote, mas gdb não me permite anexar:

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) 

Esta questão sugere que o problema é com proc.sys.kernel.yama.ptrace_scope , ou que eu possa não é root, mas o sysctl não está presente no meu sistema, e eu sou rodando como 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 ~ # 

Para referência, minha versão do kernel é 4.9.16-gentoo .

    
por Michael Mol 30.05.2017 / 22:18

1 resposta

2

Como afirmado na saída da sua pergunta, um processo zumbi é aquele que terminou a execução, então você nunca poderá se conectar a ele usando o gdb - tudo que é agora, creio eu, é uma entrada na tabela de processos do kernel. sem nenhum processo ou recurso correspondente, então não há nada para o gdb anexar.

A única razão pela qual esta entrada da tabela de processos existe, marcada como zumbi, é para que o status de saída seja lido.

    
por 30.05.2017 / 22:20