wsl 環境下的gdb無法attach的解決方案 vscode


gdb attach 失敗解決方案

1. 失敗信息

ptrace:Operation not permitted

2. 原因分析

默認情況下Linux只允許attach和啟動gdb的用戶相同的進程,比如A用戶啟動gdb,但某個程序是由B啟動的,則gdb無法attach。

3. 解決方案

  1. 有yama的Linux發行版
    echo 0| sudo tee /proc/sys/kernel/yama/ptrace_scope
  2. 無yama的Linux發行版
    sudo setcap cap_sys_ptrace=eip /usr/bin/gdb
  3. 通法
    用root用戶登錄,可以無視上邊的限制

4. wsl下的解決方案

wsl1可以用方案1,3來解決,wsl2可能沒有yama,需要用方案2解決

參考資料

  1. https://github.com/Microsoft/MIEngine/wiki/Troubleshoot-attaching-to-processes-using-GDB
  2. https://www.kernel.org/doc/html/v4.15/admin-guide/LSM/Yama.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM