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
posted @   deepwzh  阅读(1691)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示