背景
- 软件调试,写的代码不多,不用调试,就知道问题出现在哪里,尤其是必现的RT_ASSERT断言。
- 功能多了,发现出现RT_ASSERT断言后,很难一下子明白哪里出了问题,如rt_free 断言,是哪个地方调用rt_free引起的呢?
- 如何使用Keil MDK5 Debug,快速地位assert断言的真实位置,并调试软件?
案例分析
- 自己之前写了一个BUG程序,测试RT-Thread邮箱的使用,必现assert断言:rt_free,因为使用了动态内存的申请与释放。
- 首先,需要定位问题的所在,不能说rt-thread rt_free函数出了问题!!应该是使用不正确引起的。