随笔 - 7, 文章 - 0, 评论 - 19, 引用 - 0
数据加载中……

昨天晚上花了7个小时调试一个bug,很痛苦的经历。

一开始是这样,某个程序在debug模式下写的一段附魔效果的代码,测试正常后提交。
我这里release编译,F5测试了没问题。提交测试人员后被告知没有附魔效果。我继续F5测试没任何问题,和测试人员争执后发现。。。
如果用挂着调试器没有任何问题,直接双击exe就是没有效果。

最后发现是一个变量没有在类构造的时候初始化。
是一个bool类型的变量,问题是,为什么挂这调试器这个变量就是true,直接双击exe这个变量就是false???

posted on 2008-03-18 17:22 大日如来 阅读(1243) 评论(5)  编辑 收藏 引用 所属分类: 游戏-编程

评论

# re: 昨天晚上花了7个小时调试一个bug,很痛苦的经历。[未登录]  回复  更多评论   

很简单 未初始化的变量行为未定义,未定义就是怎么都可以
就象调式环境是true 并不能保证exe是true
在本机是true 并不能保证另一个机器上也是true
2008-03-18 17:55 | CppExplore

# re: 昨天晚上花了7个小时调试一个bug,很痛苦的经历。  回复  更多评论   

恩,谢谢提醒1
2008-03-18 18:07 | 梦在天涯

# re: 昨天晚上花了7个小时调试一个bug,很痛苦的经历。  回复  更多评论   

如果楼主用的是VC的话 debug模式下 应用程序通过CRT申请的内存都是被初始化未0xcc的 release一般都没有初始化 而采用操作系统的默认值 在win32平台上通常是0x00
2008-03-19 01:21 | shaker(太子)

# re: 昨天晚上花了7个小时调试一个bug,很痛苦的经历。  回复  更多评论   

变量的初始化是一个很容易疏忽的问题
2008-03-19 10:23 | 浪迹天涯

# re: 昨天晚上花了7个小时调试一个bug,很痛苦的经历。  回复  更多评论   

这个是很经常的,有时静下心休息一下或者跟同事朋友介绍介绍估计就知道问题答案了
2008-03-19 19:17 | 酷勤网

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]