keil重建工程后编译的结果跟之前不一样

2020-01-01 17:47发布

编译器:mdk 5.17
如题,因为某些原因我重建了工程,文件还是之前的,但是编译后的hex比之前的小了几kb,最关键的是运行到某段代码竟然死机了。。。
工程的配置还是照之前的配的,重建了两次还是无果,有没有人遇到过这种情况?
ps:.o文件也是发现很多(几乎)多小跟之前的不一样了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
35条回答
单飞
2020-01-03 06:53
在提供一点信息,找到一处死机的语句,然后屏蔽之后就能正常运行。此处是个指针,仿真找到篡改的位置,然后改掉,那么此指针正常了。但是在别的地方却死了。
ps:篡改的位置,//调试开关
#define DEBUG_MODE 0 //0关闭打印调试,1开启打印调试

#if DEBUG_MODE
#define printf_debug(...)   printf(__VA_ARGS__);

#else
#define printf_debug(...)
#endif
调用printf_debug会篡改某该指针,然后关闭它。

原来一份没问题的代码(也可能是表面看来没什么问题),却出来问题,这种调试是件很痛苦的事。。。

一周热门 更多>