vscode搭建远程调试环境
针对跨平台项目,目标运行平台可能没有较好的调试环境。
可以考虑配置跨平台远程调试环境来提升Debug效率。
环境说明
本地工作环境:windows + vscode + gdb
目标运行环境:linux
编译环境:不影响调试
一 本地工作环境配置
0、vscode安装及插件安装都是基础操作,不再赘述。
1、由于需要在windows上调试linux的程序,一般mingw安装后提供gdb都不支持。需要下载支持多种平台的二进制格式解析的gdb。
gdb下载地址https://github.com/ssbssa/gdb/releases
2、接下来就是配置vscode的configuration
//新增一个configuration
{
"name": "remote debug",//configuration名称
"type": "cppdbg",
"request": "attach",
// "request": "launch",
"useExtendedRemote": true,
//"program": "C:\\Users\\EDY\\Desktop\\program_name",
"MIMode": "gdb",
"miDebuggerServerAddress": "localhost:8001",//目标运行平台调试服务器
"miDebuggerPath": "D:\\software_installer\\gdb_multiarrch\\bin\\gdb.exe",//step 1中下载的gdb
// "processId":"${command:pickProcess}"
"processId": 159377,//这里是目标平台上运行的被调试程序进程ID,这里每次启动调试时需要关注是否需要更新
"sourceFileMap":{
"/code/project": "D:\\work\\code\\project" //源码路径关联
}
}
3、在目标运行平台需要安装gdbserver
sudo apt install gdbserver
二 启动目标程序和调试服务器
0、按自己项目设计启动目标程序进程,启动后记录下进程ID
1、启动调试服务器
gdbserer --remote-debug --multi <IP>:<port>
如果目标平台端口网络访问受限,可以使用ssh隧道桥接以下,windows上可以使用MobaXterm来建立ssh隧道。具体操作参考MobaXterm上的例子。
三 vscode启动调试
将前面记录的进程ID更新到configuration中,保存配置。
vscode上打开调试界面,选择对应configuration,点击运行,这时本地调试就附加到目标程序上开始调试了。
如果可以调试但是没有关联源码,可能需要在vscode的调试控制台上执行配置
-exec set substitute-path /code/project D:\work\code\project