Recientemente actualicé de 10.04 a 11.04 y gdb ya no me permite adjuntarme a los procesos. Recibo el error
Adjuntar al proceso 10144 No se pudo adjuntar al proceso. Si su uid coincide con el uid del proceso de destino, verifique la configuración de / proc / sys / kernel / yama / ptrace_scope, o intente nuevamente como usuario root. Para obtener más detalles, consulte /etc/sysctl.d/10-ptrace.conf ptrace: Operación no permitida.
¿Cómo soluciono esto para que pueda depurar nuevamente sin sudo?

/etc/sysctl.d/10-ptrace.confarchivo. Funciona perfectamente para mí. :)/etc/sysctl.defecto. Para mí, un reinicio del sistema fue suficiente, pero puede haber sido excesivo; vea el comentario de frankster arriba. Después del reinicio, el valor de/etc/sysctl.dse copia en/proc/sys/kernel/yama/ptrace_scope. (Además, en mi caso no pude editar ptrace_scope directamente, incluso con sudo.)sysctl -ppara aplicar cambios desde/etc/sysctl.confy/etc/sysctl.d/*. Para este cambio específico, en Ubuntu 15.04 Vivid, el archivo es/etc/sysctl.d/10-ptrace.confSi prefiere dejar
/proc/sys/kernel/yama/ptrace_scopeestablecido el valor predeterminado de1, entonces, como solución alternativa, podría considerar usargdbpara ejecutar el programa que desea depurar. Luego puede abrir el depurador simplemente presionando^C. Por ejemplo, para depurar el programa (aburrido)sleep 60, haga lo siguiente:Aquí hay un ejemplo completo.
Como
/bin/sleepse compiló (como era de esperar) sin información de depuración, la traza anterior contiene información mínima.fuente
gdbes el padre directo del depurado y tiene todo el derecho de depurarlo incluso conptrace_scope==1. No funcionaría si en su lugar se adjunta , es decir, hizo algo comosleep 60& gdb -ex "attach $!"sleep 60& gdb -ex "attach $!"No es "usar gdb para ejecutar el programa" y, por lo tanto, no es una refutación de mi trabajo. El ejemplo de Ruslan es usar el shell para ejecutar primerosleepy luego ejecutargdb. Mi solución funciona , que es lo que me importa. No sé, ni me importa realmente, sigdbrealmente se está uniendo a su hijo. Me importa poder depurar al niño. Mi solución lo logra. Sin embargo, he reformulado mi respuesta para mayor claridad.