您的位置:首页 > 其它

#UNDEF的启示

2016-10-10 12:04 218 查看
在给HKC修改 “文本下,打开文本呼出菜单或信源菜单在退出后页数会重新读取” 这个BUG的时候。

1、

发现 ENABLE_BOOK_AND_MAINMENU_BOTH_EXIT 这个宏,名字上看觉得跟 这个 BUG 有很大联系。

这个 宏 在文件 aps/customer/s2tek/sub_customer/s2tek/s2tek/customize.h 中定义



将其注释,编译、运行后发现现象没有变化。

事实上,在 mm_ebook_gui.c 文件中,已将其 undef。



导致没有看到对应的现象。

总结:不能只在定义的文件里查看 宏 的状态,因为有可能在别的代码里改变了。合理利用 Source Insight,检查关键字在代码工程中每次出现都作出什么处理,才能更好理解代码。

2、

在 UI_EVENT_MENU is pressed 之后,新版和旧版 UI 都弹出 menu,而且代码都一样,为何旧版软件有的打印信息不打印?是不是有函数没有执行?

新版 UI 代码跟踪如下:



旧版 UI 代码跟踪如下:



发现 没有打印 _APP_GUIOBJ_MainMenu_OnCreate is called. 难道是这个函数没有执行?但是没有执行的话为什么现象一样?(都弹出了 menu 菜单)



事实证明不是,因为在 MAINMENU_DEBF 这一语句后加上 printf("helloworld\n"); 是有打印输出的。说明两套代码 MAINMENU_DEBF 在函数外的处理不一样。



总结:看问题不能只看表面,另外查找BUG的时候,函数的每一条语句的作用都要了解,不然难以顺利解BUG。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  debug undef