如何在VSCODE中使用“ sudo”调试程序

Sec*_*ack 6 c c++ visual-studio-code

我正在尝试在VSCODE中调试程序。该程序需要在Ubuntu上以root或“ sudo”启动。实现此目标的最佳方法是什么?示例启动配置将很有帮助。谢谢。

Den*_*son 20

我做了以下事情:

  1. 在例如我的主目录中创建一个名为“gdb”的脚本,其中包含: pkexec /usr/bin/gdb "$@"
  2. 使其可执行
  3. 修改 VSCode 中的 launch.json 以通过添加“miDebuggerPath”来调用脚本(显然相应地更改用户名):
...
            "externalConsole": false,
            "miDebuggerPath": "/home/<username>/gdb",
            "MIMode": "gdb",
...
Run Code Online (Sandbox Code Playgroud)
  1. 在调试时,使用top或类似的方法来验证进程是否以 root 身份运行。

那应该就够了。

  • 超级有帮助。如果我知道如何让 pkexec 记住我的密码就好了!另一个注意事项是,如果取消提示,VSCode 不会结束调试会话。 (2认同)

Che*_*tan 12

我最近遇到了类似的情况 - 我通过在 .vscode 目录下的 launch.json 文件中添加 {"sudo": true} 解决了它。

刚刚在 .vscode>launch.json 中添加了以下行

{
    "version": "0.2.0",
    "configurations": [
        {
            "other..." : "configs...",
            "request": "launch",
            "console": "integratedTerminal",
            "args": [
                "${file}"
            ],
            "sudo": true
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我使用的 VS 代码版本是 -

版本:1.49.1 操作系统:Ubuntu 16.04 LTS,64 位

  • 这在调试 C/C++ 代码时不起作用,也许对于其他语言?(OP没有指定语言) (5认同)
  • 抱歉没有提到语言。这是Python 3.x (2认同)

小智 10

不知道如何让vscode运行sudo gdb。但是您可以使用 sudo 来运行 vscode,因此您可以使用 sudo gdb 进行调试。

须藤代码。--user-data-dir='.'

  • 我正在使用 Visual Studio Code Remote 在远程 ubuntu 服务器上编辑代码。知道我怎样才能做同样的事情吗? (2认同)

小智 9

我的解决方案:

添加/usr/bin/gdb/etc/sudoers喜欢这里

添加一个可执行文件,其内容为

sudo /usr/bin/gdb "$@"
Run Code Online (Sandbox Code Playgroud)

设置miDebuggerPath为文件