【Linux】【Vscode】非root用户调试root权限代码


前言

在调试XDMA时需要操作/dev的设备文件,如果在普通用户下打开文件会报错,但不想直接在sudo code环境下编程,所以整理了如下方法。


一、操作步骤

1.修改/etc/sudoer.d文件夹

在该文件夹下新建一个名为sudo_gdb_for_vscode的文件

echo “vip ALL=(ALL) NOPASSWD:ALL” > ./sudo_gdb_for_vscode

2.在vscode中修改lanch.json

主要关注 “miDebuggerPath”: “${fileDirname}/gdb” 这一行的内容:

{
    "configurations": [
        {
            "name": "C/C++: g++ build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++ build active file",
            "miDebuggerPath": "${fileDirname}/gdb"
            
        }
    ],
    "version": "2.0.0"
}

2.在工程文件夹下修改

新建名为gdb的文件,内容如下:

sudo /usr/bin/gdb "$@"

总结

此时再运行代码就能正常使用root功能了。
在这里插入图片描述

### 如何在 VSCode 中进行 Autodl 代码的远程调试 #### 配置 SSH 远程连接 为了能够在 VSCode 中实现对远程服务器上的 Autodl 项目的开发和调试,首先需要配置好 SSH 的无密码登录。这可以通过设置公私钥认证来完成,并确保权限设置正确以避免 `permissions are too open` 错误的发生[^1]。 #### 安装并启用 Remote-SSH 扩展 安装 Microsoft 提供的官方插件 "Remote - SSH",该扩展允许开发者通过 SSH 协议连接到任何支持 Linux 或 macOS 的机器上,在本地编辑器环境中操作远端文件系统以及执行命令行指令。 #### 设置工作区环境变量 对于特定的应用程序如 Autodl ,可能还需要额外设定一些环境变量以便于正常启动服务或者加载必要的依赖库。可以在 `.env` 文件里定义这些参数,或者是利用 shell script 来初始化运行时所需的条件。 #### 创建 launch.json 调试配置文件 针对目标项目创建合适的 JSON 格式的调试配置文件 (`launch.json`) 。这里是一个简单的例子用于 Python 应用: ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Remote Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", // 如果是在同一台机器则保持默认值;如果是跨网络,则替换为实际 IP 地址 "port": 5678 // 确认此端口号未被占用并且与远程进程中监听的一致 }, "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "/path/to/your/project/on/server" } ] } ] } ``` 上述配置假设已经在远程主机上有一个正在等待连接的服务进程,它会监听指定端口并将接收到的数据转发给对应的 Python 解释器实例来进行断点跟踪等功能。 #### 启动远程调试会话 最后一步就是按照常规流程点击绿色播放按钮开始新的调试环节了。此时应该可以看到控制台上显示出了来自远程位置的日志输出以及其他有用的信息帮助定位潜在的问题所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值