为啥gdb调试结果正确,直接运行却结果错误呢?

C、C++和Java语言
回复
cxdream
帖子: 30
注册时间: 2006-05-26 13:22
送出感谢: 0
接收感谢: 0

为啥gdb调试结果正确,直接运行却结果错误呢?

#1

帖子 cxdream » 2008-01-23 22:58

奇怪的问题:
一个程序的函数,如果不用GDB调试该函数,直接过去,则结果不对;
若用gdb逐步在这个函数中next下去,则结果正确。
这是什么方面的原因?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2008-01-23 23:18

简单不?不如直接贴源码。指出位置。

或者,printf拉。
● 鸣学
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33
送出感谢: 0
接收感谢: 0

#3

帖子 猛将兄 » 2008-01-24 2:36

调试和真实的是不完全一样的。最主要是运行速度。如果你是个多线程的没做好同步,真实运行,可能就死锁或者数据污染,但调试因为你debug再那里,而另外一个线程再跑,就没这个问题。信号的程序也是一样
头像
qlhn
帖子: 736
注册时间: 2006-08-25 10:37
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 qlhn » 2008-02-02 13:53

这个问题倒是有意思, 好像从没听说过.

是因为多线程的缘故吗?
回复

回到 “C/C++/Java”