2011-03-06 96 views
-2

请告诉我,是否有可能我在30秒的层间运行一个程序,运行一段时间并给出以前未给出的错误?感谢 如何制止这种运行几分钟后出现错误

如果我的问题是错误的好心不投我失望 只是告诉我,我的意思就是不要去伤害任何一个,也不问愚蠢的问题,我真的很感激你们 感谢

+1

这似乎是你以前的问题的一个缩减版本:http://stackoverflow.com/questions/5210735/segmentation-fault-filing-sleep-function – 2011-03-06 15:09:13

+0

是的,先生好心回答我,如果你知道并理解我的问题。谢谢你 – tariq 2011-03-06 15:14:52

+0

你的意思就像我几分钟前做的....? – 2011-03-06 15:15:36

回答

0

是的,这是可能的。仅仅因为你的程序似乎“有效”并不意味着它没有错误。

有很多类型的错误,尤其是在处理内存(指针,数组等)时,有时可能无声无息地工作,在其他时候可能会完全崩溃。这基本上是任意的,基于您错误访问的地址在内存中出现的任何值。

使用类似Valgrind和/或GDB的工具来调试这些类型的问题。

+0

tomalak先生我试过gdb并罚款错误程序收到信号SIGSEGV,分段故障。 0x0018d9bd在/lib/tls/i686/cmov/libc.so.6的getc()中。我不想问在prog中有多少getc语句有没有一个wat知道确切的行 – tariq 2011-03-06 15:45:14

+0

@randy:你应该学习如何使用你的调试器。这超出了像StackOverflow这样的网站的范围。我建议像http://www.amazon.com/Debugging-GDB-GNU-Source-Level-Debugger/dp/1882114884 – 2011-03-06 22:29:24

+1

@Downvoter这样的书:请留言,懦夫巨魔。 – 2011-03-08 15:41:33

2

是,程序可能会工作一段时间,然后失败。

你试过Valgrind

+0

不,但非常感谢,我会试一试 – tariq 2011-03-06 15:15:47

0

它没有足够具体的答案没有更多的细节。但是,最好的做法是使用调试器来运行程序,以便检查它在死亡,出现问题时发生的情况,或者只是帮助您通过它。 GDB是一个流行的免费调试器。

+0

非常感谢您的关注,我会很乐意尝试,并会问你是否需要关于GDB的帮助? – tariq 2011-03-06 15:20:44