Vscode远程连接服务器(通过跳板机)+ Cmake调试C++代码,支持细颗粒调试单个文件
最近在使用vscode远程调试C++,有一些功能看了多篇文章+自己研究挺久才可以用,故记录在此,用以以后查看,也给小伙伴提供一些经验。如有错误,欢迎指正。
- 首先,在windows上安装vscode,这个就不多说了
- 安装Remote-SSH,这样就可以通过SSH连接服务器了
安装remote-ssh
安装完成后就可以看到下面的图标
点击这个图标(Remote explorer)
点击右上角的+号,add new,点击之后会出现这个
输入ssh命令
shh 用户名@ip
如
ssh root@1.1.1.1
如果用跳板机,则这样输入
ssh -p 222 wang@root@主机ip@堡垒机ip
写入之后回车
选择config文件,ssh信息就会被写入config中
没问题的话选择就可以连上远程服务器了
现在需要用cmake编译文件
在工程文件夹中,点击Run-start debugging,会生成.vscode文件夹和里面的task.json文件
在vscode的菜单中点击“运行”,点击“添加配置”,然后选择我们所需要配置调试的语言(先安装好相应插件)。这时会自动生成一个launch.json文件
修改task.json launch.json
这里直接贴出我的这两个文件
task.json
(注意program中最后改一下,改成你的目标文件名)
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/cuda_lib",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
}
launch.json
{
"version": "2.0.0",
//"options": {
// "cwd": "${workspaceFolder}/build"},
"tasks": [
{
"label": "mkdir",
"type": "shell",
"command": "mkdir -p build",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"group": "build"
},
{
"label": "cmake",
"type": "shell",
"command": "cmake -DCMAKE_BUILD_TYPE=Debug ..",
"dependsOn": [
"mkdir"
],
"options": {
"cwd": "${workspaceFolder}/build"
},
"problemMatcher": [],
"group": "build"
},
{
"label": "clean",
"type": "shell",
"command": "rm -rf *",
"options": {
"cwd": "${workspaceFolder}/build"
},
"problemMatcher": [],
"group": "build"
},
{
"label": "make",
"type": "shell",
"command": "make -j4",
"options": {
"cwd": "${workspaceFolder}/build"
},
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "build",
"dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
"dependsOn":[
"mkdir",
"clean",
"cmake",
"make"
],
}
]
}
这两个文件完成之后,就可以debug了
按一下F5试一下吧
现在还差一个单个文件调试的功能就完美了
安装插件
Test Explorer UI
C++ TestMate
.vscode/setting.json追加如下配置
“testMate.cpp.test.executables”: “build/cuda_lib”
同样,最后的也是可执行文件的名字
然后编译出可执行文件
就可以在左侧Testing栏点开调试单个文件啦