如何判断是硬件,编译器,内核问题,还是我的程序有Bug?

软件和网站开发以及相关技术探讨
回复
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

如何判断是硬件,编译器,内核问题,还是我的程序有Bug?

#1

帖子 科学之子 » 2016-07-13 23:53

如何判断是硬件,编译器,内核问题,还是我的程序有Bug?
具体是这样的:
程序根据下标读取指定位置的字符串.
但是同样的下标,有时会读取到不同的字符串(好像(但不确定,只是感觉猜测)还是相邻的字符串)
正确运行的概率很高,但是几十次或一百多次运行之后就会出现错误
但我仔细检查代码还是没能发现任何问题(虽然我水平很菜,但这个程序的执行路径应该非常简单,而且检查了很多遍)
cpuburn对整数,逻辑运算之类的错误有效果吗?
大多数情况下下标都整正常读取
但有一定概率同一个下标会读取到不同的字符串?

调试记录片段(异常部分):

代码: 全选

代码定位:./interfaces.c:93
URL:http://fanyi.baidu.com/#en/zh/delimiters
下标:1354
time_length:61200
review_time_point:1468408584
review_time_point-time_length:1468347384
记录时间:1468424875
代码定位:./review.c:171
URL:http://fanyi.baidu.com/#en/zh/delicate
下标:1354
time_length:28800
review_time_point:1468453675
review_time_point-time_length:1468424875
记录时间:1468424875
代码定位:./interfaces.c:93
URL:http://fanyi.baidu.com/#en/zh/delimiters
下标:1355
time_length:61200
review_time_point:1468408584
review_time_point-time_length:1468347384
记录时间:1468424878
代码定位:./review.c:171
URL:http://fanyi.baidu.com/#en/zh/delimiters
下标:1355
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 如何判断是硬件,编译器,内核问题,还是我的程序有Bug?

#2

帖子 科学之子 » 2016-07-14 2:34

猜测是 "gcc -Os"优化导致的
忘记从哪里看到的,说一般都是O2优化,Os优化可能会引发一些问题.
好像是编译内核的资料
我尝试不加任何优化参数编译试试...
回复