工欲善其事必先利其器,这句话不容小觑,调试工具做的好,对开发工作可起到事半功倍。
本文主要讲vscode远程到服务器进行在线GDB调试手段,包含对WSL的远程调试,可以轻松对照源码进行应用程序调试。
文章目录
- 一、vscode远程服务器(或虚拟机)
- 二、vscode远程服务器(WSL)
- 三、vscode GDB
一、vscode远程服务器(或虚拟机)
1、vcode的本地需要建议安装这几个插件,ssh必需装。
2、创建远程连接到服务器或虚拟机
如果ssh 连接不上,可检查C:\Users\xxx.ssh\config 配置文件是否没有权限,可以尝试删除掉这个文件,再自动创建
连接成功后,就可以打开想要访问的服务器代码路径了
二、vscode远程服务器(WSL)
如果是win10本地安装了WSL,代码放在wsl中,需要通过vscode ssh 到WSL环境中进行代码调试,这种方法对本地调试应用程序代码很便利(前提是wsl环境可以运行你编译的代码)
步骤跟上面类似。
1、安装wsl插件
2、远程连接要选择WSL(而不是ssh)
其他步骤跟上面远程到服务器是一样的了,如果你的代码放在wsl的/mnt/d/xxxx 下,vscode中打开对应绝对路径访问即可,切记不能通过软链接接路径去访问,否则影响GDB调试。
三、vscode GDB
凡是应用程序能在本机或者服务器、虚拟机运行的,采用远程GDB工具调试就太棒了。
1、远程服务器或者WSL需要安装插件GDB debug(别的如C/C++相关插件也建议装上)
2、创建一个gdb的配置文件
3、配置文件填写,很关键,这里提供一个模板
其中,program和args是你需要填写的可执行程序和传参
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
"type": "cppdbg", //配置类型
"request": "launch", //请求配置类型,可以是启动或者是附加
"program": "${workspaceFolder}/xxx/xx", //程序可执行文件的完整路径,${workspaceFolder}表示远程连接的初始路径
"args": ["-i", "ens33", "-m", "-S"], //传递给程序的命令行参数
"stopAtEntry": false,//可选参数,如果为true,调试程序应该在入口(main)处停止
"cwd": "${workspaceFolder}", //目标的工作目录
"environment": [], //表示要预设的环境变量
"externalConsole": false,//如果为true,则为调试对象启动控制台
"MIMode": "gdb",//要连接到的控制台启动程序
"setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
4、切记编译应用程序增加调试选项(-g),否则GDB调试时候找不到源码,如下在makefile中添加
5、启动GDB,你就可以对着代码进行调试了。可以自定义增加断点、单步调试、变量监控、函数栈查看等操作,非常友好。
其他注意:远程机确保支持安装了ssh和gdb等服务和工具