简介
GNU调试器(GNU Debugger,简称GDB)是GNU项目开发的一款功能强大的命令行调试工具,主要用于C、C++等编程语言的调试。作为Linux/Unix系统下最常用的调试器之一。
一般的桌面PC Linux 系统,比如 ubuntu、centos 等,我们可以直接运行 gdb 来调试程序。但是嵌入式中芯片性能一般比较弱,所以直接在嵌入式系统中运行 gdb 不太现实(性能强大的嵌入式芯片可以这么做)。
- 嵌入式系统中一般在 PC 端运行 gdb 工具,源码在 PC 端,源码的可执行文件放到开发板中运行。
- 在开发板中运行 gdbserver,通过网络与 PC 端的 gdb 进行通信。
- 在 PC 上通过 gdb 调试嵌入式程序,需要两个东西:gdb 和gdbserver gdb 运行在 PC 上的,gdbserver 移植到开发板上。
GDB 移植
gdbserver移植
GDB使用
第一步,编译程序
c
arm-linux-gnueabihf-gcc gdbtest.c -o gdbtest -g //编译测试程序,注意-g 选项
第二步,启动开发板端命令
c
gdbserver 192.168.1.253:2001 gdbtest //启动开发板上的 gdbserver
192.168.1.253 为PC机的 IP 地址
sr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
第三步,PC端命令
c
arm-linux-gdb gdbtest //启动gdb
target remote 192.168.1.251:2001 //连接到开发板上
arm-linux-gdb为gdb工具名称,需要跟环境变量中的一致 。/etc/profile
bash
export PATH=$PATH:/u
192.168.1.251 就是开发板 IP 地址
gdb命令
vscode插件 Remote Development"
安装插件Remote Development"
点击运行->添加配置

打开launch.json文件
c
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gdbtest",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/gdbtest/gdbtest",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/gdbtest",
"miDebuggerPath":
//"/home/kai/linux/IMX6ULL/tool/gdb/bin/arm-linux-gnueabihf-gdb",
"/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",
"miDebuggerServerAddress": "192.168.0.150:2001"
}
]
}
调试方法类似,先运行gdbserver,然后直接点击vscode上的开始调试