Debug的时候错误就没有了
肯定有人也遇到过这种情况, 今天我调程序, 用到了LASPack的包, 在出错的地方写了一个输出其错误的语句, 然后调了半天, 貌似哪里都已经ok了, 但是 make以后执行还是会输出显示错误的语句, 于是决定用make bebug以后在GDB底下调, 还在那个输出错误的地方设了一个断点, 准备一步一步下去看。 灵异事件终于发生了, 什么错误信息都没有出来, 直接顺利跑完了, 断点自然也没有将其断下来。 真正要调bug的时候, 他却消失了, 这也许是最贱的小虫子了吧! 弄了半天, 只好用print数据的时候在正常make的时候调, 发现其中一个值x在一开始就是错的, 虽然输入的值都是正确, 但是计算出来的那个值x就是不对。 而make debug后的那个时候的值x是正确的.
(之后有人面对电脑一个钟头之后, 并且不停的玩弄自己的头发, 陷入沉思以及敲打键盘的状态…….)
但是问题还是没有解决, 我终于没有办法了, 只好请教大师叔, makefile都是他写的。 最后两个人看了半天, 原来错误出现在makefile里面的一个优化选项上, 开始给gcc设的优化级别比较高, 结果一优化就出错了。 在debug模式下没有优化, 所以没有错。 后来把优化的选项去掉, 就ok了。
这个故事告诉我们, debug的时候错误没有了去检查检查makefile里面的编译选项, 也许会有所收获的。
调bug调傻了以后, 决定去打篮球, 结果把背给扭伤了, 想到今天是NBA新赛季开张的第一天, 我又穿着T-Mac的鞋子, 这下可真是和Tracy一样, 成为正宗的断背男了…..
5 Responses to “Debug的时候错误就没有了”
|
Comment by philewar November 1st, 2006 at 10:12 pm |
呵呵,上次跑一个testcase,regression的时候不过,standalone的时候就过。 |
|
Comment by biantaishabi November 1st, 2006 at 10:55 pm |
看来大家都遇到过灵异事件, 而且灵异事件肯定还都是有原因的, 呵呵 |
|
Comment by flying_water November 1st, 2006 at 11:40 pm |
这样的事情我也经常碰到过……以前还有一个程序可以调试正常运行,但一直接生成EXE执行就出错,后来发现是一个内存分配的问题……VC下倒不用直接去看makefile,不过,前几天一个Err和3000多个Warning(好恐怖)都是因为一个编译选项未设好造成的-_- |
|
Comment by magoi-> November 2nd, 2006 at 8:13 pm |
背伤…… 可大可小…… |
|
Comment by 2maomao November 14th, 2006 at 8:50 pm |
有时候是因为变量没有初始化,或者缓冲区溢出,会有一些灵异时间发生 |