一、基础调试操作
1. 进入调试模式
- 硬件调试:连接开发板后,点击工具栏 Debug按钮(或按F7)启动调试
- 软件仿真:若无硬件,选择 Debug → Use Simulator 模拟程序运行
2. 常用调试按钮
按钮/快捷键 | 功能描述 |
---|---|
F5 | 全速运行至断点或结束 |
F10 | 单步跳过(Step Over) |
F11 | 单步进入(Step Into) |
Ctrl+F11 | 单步跳出(Step Out) |
复位(Reset) | 重置程序到起始位置 |
3. 断点设置
- 软件断点:点击代码行左侧或按 F9 设置,程序执行到该行暂停
- 硬件断点:适用于资源受限的微控制器,数量有限但执行速度快
- 高级断点:
- 条件断点:右键变量 → Set Access Breakpoint,设置变量读/写触发条件
- 次数限制断点:通过命令行输入
BS exp, cnt, "cmd"
实现循环次数触发
二、变量与内存监控
1. 实时变量监视
- Watch窗口:右键变量 → Add to Watch,实时查看全局变量或寄存器值
- 数组/结构体:在Watch窗口输入变量名(如
array
)逐个查看元素
2. 内存与寄存器查看
- Memory窗口:输入地址(如
0x20000000
)查看内存内容,支持手动修改数据 - 寄存器窗口:按 Ctrl+R 打开,监控外设寄存器状态(如GPIO、定时器)
3. 调用栈分析
- Call Stack:追踪函数调用层级,快速定位死循环或递归问题
三、高级调试技巧
1. 逻辑分析仪
- 通过 Logic Analyzer 监控信号时序,解决中断响应或通信协议问题
2. 性能分析
- Performance Analyzer:分析代码执行时间,找出性能瓶颈(如循环延时)
3. 多核调试
- 支持同时调试多个内核,适用于多任务实时系统
4. 仿真调试优化
- 禁用代码优化:在工程配置中将优化等级设为0,避免断点失效
- 调试宏与脚本:通过
Debug Macros
或脚本自动化调试任务(如批量设置断点)
四、常见问题解决
1. 变量值不刷新
- 勾选 View → Periodic Window Update,确保变量窗口实时更新
2. 堆栈溢出分析
- 通过 Memory Window 查看堆栈指针(MSP/PSP)地址,反向定位代码错误
3. 优化代码调试
- 使用
volatile
关键字防止变量被编译器优化,例如:volatile int variable; // 强制从内存读写[2,6](@ref)```