经验

        今天下午加上晚上几乎被一个bug弄疯了,单元测试怎么也测不出问题,可单独写的程序编译后却怎么都运行不过去。两个程序完全一样啊,唯一的区别是链接方式,即一个是用静态库,一个是直接和obj链接,难道这也回造成程序运行异常?更可气的是:我为了调试加了一条输出语句,结果程序运行正常了!通常这种情况都意味着内存已经乱套了,很难说是具体哪行代码错了。
        我首先怀疑是sscanf作祟,因为几天前就有类似的问题:由于sscanf的存在,加了-O 编译的程序运行结果和不加-O的结果完全两样。但今天的程序一行sscanf都没有。
        折腾到晚上8点左右终于用gdb一步步跟到了问题所在:
        一个变量没有初始化就直接用了。
        通常情况下这都正确运行,但如果被编成了静态库,情况就“变化万端”了。
        简单的错误造成巨大的损失,这可能就是蝴蝶效应吧...

相关文章

分类

留言:

关于文章

This page contains a single entry by DongHao published on 04 19, 2007 5:11 PM.

精灵谷游记 was the previous entry in this blog.

听话 is the next entry in this blog.

Find recent content on the main index or look in the 存档 to find all content.