24小时热门版块排行榜    

查看: 1270  |  回复: 10

wangww2011

木虫 (著名写手)


[交流] 今天碰到的一个bug

今天根据一个同学的要求把以前的一个代码修改了一下就发过去了,后来自己拿这个代码去算另一位同学发来的文件,发现提示内存不足,遂把体系改小,依旧报错,在想是不是今天把代码改坏了,又检查了一下代码,其实今天只是加了一个函数,原来的都没有动,我也就是用if语句判断了下,后来发现问题就出在这里了,到现在还是不知道为什么。我重新写了个文件,并没有发现问题。
CODE:
#include
using namespace std;

class TestBug {
private:
    mutable int x;
public:
    void print() const;
};

void TestBug::print() const {
    x = -1;
    int y=x;
    if (x > 0) {
        cout << "x=" << x << endl;
    }
    if (y > 0) {
        cout << "y=" << y << endl;
    }
}

int main() {
    TestBug tb;
    tb.print();
    return 0;
}

正确的结果是什么都不输出呗(当然上面的代码是没有问题的),但在原代码中bug的结果是
CODE:
x=-1

我只能感叹太复杂的东西真的是会出错的,我重新定义一个本地变量,代码正常了,我很想知道为啥,因为原代码从逻辑上根本没有问题。

[ Last edited by wangww2011 on 2012-5-29 at 02:20 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nbjnh

木虫 (正式写手)



wangww2011(金币+1): 谢谢参与
我把楼主那段代码编译、运行了一遍,没有任何问题。我用的是VS2008。
3楼2012-05-29 08:19:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

devymex

捐助贵宾 (初入文坛)



wangww2011(金币+1): 谢谢参与
有可能是别的地方把栈写坏了(过界写入)。建议在int y=x;处设断点单步调试,跟踪x变量的值,看看哪里发生了改变。
4楼2012-05-29 11:12:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


引用回帖:
3楼: Originally posted by nbjnh at 2012-05-29 08:19:26
我把楼主那段代码编译、运行了一遍,没有任何问题。我用的是VS2008。

上面的代码确实没有什么问题的,但是原代码的确会出现问题,而且是第二次运行时出现问题。
5楼2012-05-29 19:55:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


引用回帖:
4楼: Originally posted by devymex at 2012-05-29 11:12:50
有可能是别的地方把栈写坏了(过界写入)。建议在int y=x;处设断点单步调试,跟踪x变量的值,看看哪里发生了改变。

回头调试下吧,有点小麻烦的是程序必须用tcl载入,回头看看如何调试。
原来tclsh也一样,可以直接载入,呵呵

[ Last edited by wangww2011 on 2012-5-29 at 20:14 ]
6楼2012-05-29 20:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nebulaly

木虫 (著名写手)



wangww2011(金币+1): 谢谢参与
可能是多线程的问题
7楼2012-05-30 00:19:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


引用回帖:
7楼: Originally posted by nebulaly at 2012-05-30 00:19:48
可能是多线程的问题

也不是 我把线程关了 编译的单线程
8楼2012-05-30 02:43:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xl1247644534

铜虫 (小有名气)



wangww2011(金币+1): 谢谢参与
在coldblocks 中用 gcc编译器编译没有问题
9楼2012-06-03 05:47:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gov_sb

新虫 (初入文坛)



wangww2011(金币+1): 谢谢参与
if (x > 0)
活生生的怀疑是这里的问题,
-1在内存里是 0xFFFFFFFF ,它既可以表示负数-1 ,也可以表示个很大的正数

估计是判断的时候,悲剧掉了。
这是编译器的问题
10楼2012-06-04 19:59:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
fengmeiyi2楼
2012-05-29 05:32   回复  
wangww2011(金币+1): 谢谢参与
zhanglover11楼
2012-06-04 22:24   回复  
wangww2011(金币+1): 谢谢参与
相关版块跳转 我要订阅楼主 wangww2011 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 cBGhfJFuNMca 2026-08-02 19/950 2026-08-02 16:24 by jHcrHMhbKCFV
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 cBGhfJFuNMca 2026-08-02 15/750 2026-08-02 16:23 by jHcrHMhbKCFV
[博后之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 cBGhfJFuNMca 2026-08-02 19/950 2026-08-02 16:23 by jHcrHMhbKCFV
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 cBGhfJFuNMca 2026-08-02 19/950 2026-08-02 16:21 by jHcrHMhbKCFV
[基金申请] 面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇! +18 低垂的野花 2026-07-31 24/1200 2026-08-02 16:03 by swallowwh
[基金申请] 面上提前没消息,有中的吗 +9 archvillain 2026-08-02 11/550 2026-08-02 15:44 by alexon
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 cBGhfJFuNMca 2026-08-02 14/700 2026-08-02 14:58 by jHcrHMhbKCFV
[找工作] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 cBGhfJFuNMca 2026-08-02 12/600 2026-08-02 13:43 by jHcrHMhbKCFV
[博后之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 cBGhfJFuNMca 2026-08-02 14/700 2026-08-02 13:34 by jHcrHMhbKCFV
[基金申请] 2026年国自然面上资助率 +15 布布和一二 2026-07-30 21/1050 2026-08-02 10:56 by iaeyuan
[教师之家] 基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊 +8 锦衣卫寒战 2026-07-28 10/500 2026-08-02 10:00 by 锦衣卫寒战
[有机交流] 一个有机合成实验室都需要哪些设备? 50+3 kf2781974 2026-07-31 7/350 2026-08-02 07:59 by 88817753
[基金申请] 微信指数没变化,科研之友没阅读 +14 wangze12014 2026-07-28 18/900 2026-07-31 18:35 by lzchaihuo
[高分子] HXDI做水性聚氨酯乳液,是不是特别容易出渣 15+3 yuyusuv 2026-07-29 3/150 2026-07-31 09:21 by huizingga
[基金申请] 系统今天又提示维护了,估计离放榜不远了 +11 winnerche 2026-07-29 15/750 2026-07-30 23:08 by jnhyjjm
[基金申请] 你们的时间戳变了吗 +3 archvillain 2026-07-30 4/200 2026-07-30 18:53 by levinzhwen
[有机交流] 产物和副产物价值比较 30+4 小汤02 2026-07-27 5/250 2026-07-30 12:44 by czyzsu
[基金申请] 这种情况还有戏吗 +5 drbart 2026-07-27 11/550 2026-07-29 05:50 by drbart
[基金申请] 同事接到电话了,我却没有 +4 1234567wang 2026-07-27 4/200 2026-07-28 10:11 by GOODLUCKER
[基金申请] 准备明年的基金了 +5 Tide man 2026-07-27 5/250 2026-07-28 09:25 by newfuzzy1
信息提示
请填处理意见