wsl 环境下的gdb无法attach的解决方案 vscode
gdb attach 失败解决方案
1. 失败信息
ptrace:Operation not permitted
2. 原因分析
默认情况下Linux只允许attach和启动gdb的用户相同的进程,比如A用户启动gdb,但某个程序是由B启动的,则gdb无法attach。
3. 解决方案
- 有yama的Linux发行版
echo 0| sudo tee /proc/sys/kernel/yama/ptrace_scope
- 无yama的Linux发行版
sudo setcap cap_sys_ptrace=eip /usr/bin/gdb
- 通法
用root用户登录,可以无视上边的限制
4. wsl下的解决方案
wsl1可以用方案1,3来解决,wsl2可能没有yama,需要用方案2解决