Acabei de atualizar recentemente do 10.04 para o 11.04 e o gdb não me permite mais me conectar aos processos, recebo o erro
Anexando ao processo 10144 Não foi possível anexar ao processo. Se o seu uid corresponder ao uid do processo de destino, verifique a configuração de / proc / sys / kernel / yama / ptrace_scope ou tente novamente como usuário root. Para mais detalhes, consulte /etc/sysctl.d/10-ptrace.conf ptrace: Operação não permitida.
Como faço para corrigir isso para poder depurar novamente sem o sudo?
/etc/sysctl.d/10-ptrace.conf
arquivo. Funciona perfeitamente para mim. :)/etc/sysctl.d
sejam efetivadas. Para mim, uma reinicialização do sistema foi suficiente, mas pode ter sido um exagero - veja o comentário do frankster acima. Após a reinicialização, o valor de/etc/sysctl.d
é copiado para/proc/sys/kernel/yama/ptrace_scope
. (Além disso, no meu caso eu não poderia editar ptrace_scope diretamente, mesmo com sudo.)sysctl -p
para aplicar as alterações de/etc/sysctl.conf
e/etc/sysctl.d/*
. Para que essa alteração específica, no Ubuntu 15.04 Vivid, o arquivo é/etc/sysctl.d/10-ptrace.conf
Se você preferir deixar
/proc/sys/kernel/yama/ptrace_scope
definido como seu valor padrão1
, então, como uma solução alternativa, você pode considerar usargdb
para executar o programa que deseja depurar. Você pode abrir o depurador simplesmente pressionando^C
. Por exemplo, para depurar no programa (chato)sleep 60
, faça o seguinte:Aqui está um exemplo completo.
Como
/bin/sleep
foi (sem surpresa) compilado sem informações de depuração, o backtrace acima contém informações mínimas.fonte
gdb
é o pai direto do depurador e tem todo o direito de depurá-lo, mesmo com eleptrace_scope==1
. Não funcionaria se você anexasse , ou seja, fiz algo parecido comsleep 60& gdb -ex "attach $!"
sleep 60& gdb -ex "attach $!"
Não está "usando o gdb para executar o programa" e, portanto, não é uma refutação da minha solução alternativa. O exemplo de Ruslan é usar o shell para primeiro executarsleep
e depois executargdb
. Minha solução funciona , que é o que me interessa. Eu não sei, nem me importo realmente, se é ou nãogdb
realmente apegado ao seu filho. Eu me preocupo em poder depurar a criança. Minha solução alternativa realiza isso. No entanto, reformulei minha resposta para maior clareza.