如何使用与VS Code的远程连接在超级用户模式下调试?
myprogram 在远程计算机上。(我通过vscode扩展名使用ssh-connection )
最初的任务是调试c ++代码,但是该代码是通过 pytests 调用的。我想在C ++代码中设置断点并运行pytests。
myprogram是用于调用pytests的“运行测试”程序(可执行)。
1)
我试图调用预启动任务:
launch.json
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/myprogram",
"args": [
"args"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"preLaunchTask": "supervisor"
}
]
}
启动前的任务:
tasks.json
{
"label": "supervisor",
"command": "sudo bash",
"type": "shell",
"group": "build",
"problemMatcher": "$gcc"
}
但是,该命令没有用)我只是不知道该写些什么
2)
然后,我尝试将launch.json中的“程序”更改为
"program": "${workspaceFolder}/proxy_program_to_run_myprogram"
代理程序:
#include <iostream>
#include <unistd.h>
#include <sys/wait.h>
int main(int argc, const char * argv[]) {
auto command = "usr/bin/sudo";
auto argument1 = "myprogram";
auto res = execl(command,command,argument1);
return 0;
}
但是当我想在调试器中“进入”时,我收到消息:
无法打开'execl.c':无法读取文件(错误:找不到文件(vscode-remote:// ssh-remote +(我的主机名)/ build / glibc-LK5gWL / glibc-2.23 / posix / execl.c))。
很明显,该文件存在,但是“权限被拒绝”。