
1.安装环境需要安装msys2和gbd具体可以参考网上怎么安装2.安装J-link GDB这个只要安装了J-link都会有。直接再windows搜索下打开。正确配置好后会显示等待连接3.和GDB server连接将端口号等信息连接我是直接将J-link GDB的信息都告诉AI了让AI帮我连接好4.运行连接到gdb开始单步运行输入n开始单步运行全速运行输入c开始全速运行可以看到我的板子上的2个灯开始闪烁了成功。让我脱离IDE界面进行代码的调试1. 启动与连接# 进入工程目录cd/c/Users/10377/Desktop/Uart/USB_HOST/USB_HOST# 启动 J-Link GDB Server在另一个 MSYS2/命令行窗口执行/d/Program Files/SEGGER/JLink/JLinkGDBServerCL.exe-deviceSTM32F429IG-ifSWD-speed4000-port2331# 启动 GDB使用 debug.gdb 自动连接、烧录、停在 main/c/Users/10377/tools/xpack-arm-none-eabi-gcc-15.2.1-1.1/bin/arm-none-eabi-gdb.exe-xdebug.gdb MDK-ARM/USB_HOST/USB_HOST.axf2. 运行控制命令作用c/continue继续运行s/step单步进入会进函数n/next单步跳过不进入函数finish运行到当前函数返回u/until运行到下一行适合跳出循环Ctrl C暂停目标monitor reset复位目标monitor halthalt 目标monitor go让目标自由运行慎用会导致 GDB 失步3. 断点break main # 在 main 函数入口打断点 break main.c:241 # 在 main.c 第 241 行打断点 break TIM6_DAC_IRQHandler # 在中断服务函数打断点 info breakpoints # 列出所有断点 delete 1 # 删除编号为 1 的断点 delete breakpoints # 删除所有断点 disable 1 # 禁用断点 enable 1 # 启用断点4. 查看状态info registers # 查看所有寄存器 info registers pc # 只看 PC print x # 打印变量 x 的值 print/x x # 十六进制显示 print/d x # 十进制显示 print x # 打印变量地址 info locals # 查看当前栈帧局部变量 info args # 查看当前函数参数 backtrace # 查看调用栈可简写 bt frame 2 # 切换到第 2 号栈帧5. 内存与外设查看x/10wx 0x20000000 # 从 RAM 起始地址查看 10 个字32 位十六进制 x/16bx 0x08000000 # 查看 Flash 前 16 字节 x/4wx 0xE000E010 # 查看 SysTick 寄存器CTRL / LOAD / VAL / CALIB x/1wx 0x40020414 # 查看 GPIOB_ODRLED 输出状态6. 反汇编disassemble main # 反汇编 main 函数 disassemble 0x08002630,40 # 从指定地址反汇编 40 字节7. 程序下载load # 用 .axf 加载本工程会出现 .data 初始化问题不建议使用 restore MDK-ARM/USB_HOST/USB_HOST.hex # 烧录 Keil 生成的 hex推荐8. 常用 GDB 配置set pagination off # 关闭分页便于脚本输出 set confirm off # 关闭确认提示 handle SIGTRAP nostop nopass # 忽略 J-Link 产生的 SIGTRAP set logging on # 把 GDB 输出写入日志文件9. 退出quit # 退出 GDB10. 最简调试流程启动 J-Link GDB Server端口2331。在工程目录下执行/c/Users/10377/tools/xpack-arm-none-eabi-gcc-15.2.1-1.1/bin/arm-none-eabi-gdb.exe-xdebug.gdb MDK-ARM/USB_HOST/USB_HOST.axf停在main()后输入c # 全速运行LED 开始闪烁需要查看状态时按Ctrl C暂停再用上述命令检查。