- 在调试的过程中,尽量选择
最低的编译器优化选项
,这样就可以比较直观的观察到整个程序的运行状态 - ICE(on chip In Circuits Emulation): 将在线仿真器的相关硬件逻辑直接集成在处理器芯片内部,在线仿真器监测CPU的所有输入输出信号,从而实现调试器的断点和跟踪trace功能
- 断点调试和跟踪调试区别:前者就像是给系统拍摄一张照片,它反映当前的系统状态。而跟踪技术更像是给系统拍摄一段视频,它反映的是系统一段时间的动态特性
- 跟踪trace调试,对应的是软件跟踪技术,即使用printf或者dump功能,其中printf开销比较大,会影响系统的性能,在某些库函数中,printf的是不可重入的
- 软件断点:修改RAM中的程序,把对应地址的指令改为软件断点指令或者软陷指令;硬件断点:调试ROM程序,无需更改指令,只需监测处理器发出的地址即可,但是有个数限制。