争怎路由网/系统工具/内容

使用GDB调试时attach ID不被允许

系统工具2024-06-10 阅读
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
在进入gdb后,直接使用attach ID,出现下面的情况:
Could not attach to process.  If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf
 
原因是Ubuntu 16.04 的/etc/sysctl.d/10-ptrace.conf文件中最后一行默认。
 
kernel.yama.ptrace_scope = 1,这个值不允许用户使用普通账户使用attach ID连接程序进行调试,需要使用超级用户权限才能连接。
 
可以把kernel.yama.ptrace_scope的值改为 0,即:
sudo vim /etc/sysctl.d/10-ptrace.conf
 
将最后一行改为  kernel.yama.ptrace_scope = 0,保存退出。
 
重启系统后,普通用户就可以使用attach ID连接程序调试了。

Linux是一套免费使用和自由传播的类Unix操作系统



……

相关阅读