gdb+gdbserver +vscode可视化远程调试
1、基本原理
板端运行gdbservice,linux编译服务器(要求Ubuntu16及以上版本)端运行gdb,windowsPC安装vscode通过ssh远程访问编译服务器上的代码,gdbserver与gdb通过网络通讯进行调试,如下图所示:
2、工具:
2.1、编译gdb和gdbservice工具
2.2、windows端安装vscode、然后安装romete-ssh插件或Remote-development插件
安装成功后点击左下角的“打开远程窗口”。
点击“ AddAddAdd New New SSH Host HostHost... ”
根据提示输入编译服务器 ip和用户名:
如,编译服务器用户名为 ssh peifeixiang@10.1.74.62 -A
回车后提示选择配置文件保存位置:
这里 选择第一个,确定后右下角提示添加成功:
2.3、vscode链接编译服务器
首次 连接远程服务器需要进行配置:
启动 VScode VScodeVScode,点击左下角“打开远程窗口”,选择我们之前添加的编译服务器, VScode会在新窗口中打开连接选择系统类型为 Linux
根据提示输入密码
后右下角会提示正在配置服务器:
2.4安装c++扩展:
可在线或离线安装
离线安装下载地址:https://marketplace.visualstudio.com/
3、vscode免密登录(可选功能,最后再做)
4、开始调试
4.1点击打开文件夹,然后选择打开路径
选择一个打开的c或C++文件,点击运行->添加配置,选择第一个
自动生成launch.json文件,含义如下:
1 ①、name:调试的项目名(此项可不修改) 2 ②、program:需要调试的应用程序可执行文件路径。 3 ③、cwd:需要调试的应用程序源码路径。 4 ④、miDebuggerPath:此项需要手动添加,用于指定所使用的交叉编译器 gdb路径,即在linux编译服务器端运行的gdb的路径。 5 ⑤、miDebuggerServerAddress:此项需要手动添加,远程 gdbserver服务器地址,也就是开发板地址
修改后如下:
1 { 2 // 使用 IntelliSense 了解相关属性。 3 // 悬停以查看现有属性的描述。 4 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "(gdb) 启动", 9 "type": "cppdbg", 10 "request": "launch", 11 "program": "${workspaceFolder}/bin/hikauto_debug", 12 "args": [], 13 "stopAtEntry": false, 14 "cwd": "${workspaceFolder}/", 15 "environment": [], 16 "externalConsole": false, 17 "MIMode": "gdb", 18 "setupCommands": [ 19 { 20 "description": "为 gdb 启用整齐打印", 21 "text": "-enable-pretty-printing", 22 "ignoreFailures": true 23 }, 24 { 25 "description": "将反汇编风格设置为 Intel", 26 "text": "-gdb-set disassembly-flavor intel", 27 "ignoreFailures": true 28 } 29 ], 30 "miDebuggerPath":"/data1/peifeixiang/work/project/gdb-10.2_gdb/build/bin/aarch64-linux-gnu-gdb", 31 "miDebuggerServerAddress":"10.65.32.201:9008" 32 } 33 34 ] 35 }
开始调试
./gdbserver :9008 ./hikauto_debug &
vscode 上点击:运行->启动调试,或直接点击F5
调试快捷键