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解決