#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。
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。
相关文章推荐
- 俄罗斯方块的启示
- WEBTIMER控件研究的心得:WebTimer的启示
- 从程序员到主编:FU的职涯转换带给我们的启示……
- 人生启示
- WinFX开发的新启示!
- 您好,欢迎光临--香港启示
- 博客首文--关于DOM递归中的一点启示!
- 日本企业给我们的启示
- 人民币汇率上升对外报价--Franny交流启示
- 日韩移动定位业务发展启示
- 幸存者游戏启示[摘录]
- Sogou输入法之父给我们的启示
- 年底三部大片的启示
- 一个简单创业案例带来的启示
- Ruby、Rails、Agile的启示——《程序员》杂志07年12月文章选读
- 如何编写高质量的代码——来自《代码大全(第2版)》的启示
- 破窗理论的组织启示
- 小闹钟的启示——你也可以!(转)
- 机器人总动员 Wall-E 人工智能启示
- 人生六个经典启示