背景:
嵌入式linux软件开发过程中需要依赖硬件运行环境,为了方便debug调试,使用vscode+gdbsever可满足该需求,高效进行开发
准备:
1:将交叉编译工具链放入ubuntu中
2:嵌入式设备需要支持gdbserver,否则需要进行移植
实现:
1:vscode点击调试创建launch.json
2:复制下方内容并替换
{
"version": "0.2.0",
"configurations": [
{
"name": "gdb-arm",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": false,
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/XXX.elf",
"MIMode": "gdb",
"miDebuggerPath": "/usr/arm/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb",
"miDebuggerServerAddress": "172.XX.XX.XX:12345",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
3:修改"program"为目标可执行文件,可执行文件编译时要加上-g选项
4:修改"miDebuggerPath"为交叉编译工具链gdb的路径
5:修改 "miDebuggerServerAddress"为gdbserver的ip和端口,端口可以随意指定(除22 ssh专业端口)
-----------------------------此时vsode完成配置-------------------------------------
6:确保ubuntu和嵌入式设备可以ping通
7:将在ubuntu编译好的可执行文件拷入嵌入式设备中
8:在嵌入式设备中启用gdbserver
9:vscode中按F5开始调试,命中断点,可进行调试