你遇到过的最难调的 bug 是什么?

2015-08-22 19:41:19 +08:00
 oska874

看到一个段子:

然后就想到了一个自己遇到的最难调的 bug 是这样的:给一个刚生产出来的 arm 开发板写 bootloader ,然后每次都是刚跑一下就挂了,然后各种修改代码、仿真器监控,都解决不了,然后怀疑自己、怀疑人生、怀疑硬件,就去问了一下做板子的哥们,一句话把我喷死了: fpga 的看门狗复位了 cpu 。 大哥你手也太快了,刚生产出来的板子你就刷 fpga 了。

说说你们难调的 bug 吧。

5496 次点击
所在节点    程序员
46 条回复
Strikeactor
2015-08-22 19:51:36 +08:00
调用一个网站的 API 一直是错误结果,明明照着文档来的,怎么改都没用
后来发现是用的梯子服务把第一次的请求结果缓存了
vitovan
2015-08-22 19:52:24 +08:00
说个看来的,忘记出处了:

从前有个系统管理员,平时去机房登录服务器时都是站着操作。

有一次腰疼,搬了个凳子坐在了机器前面,完蛋,死活登录不进去,提示密码错误。

于是他站了起来,重新输入了一次密码,进去了。

后来他觉得奇怪,于是抽时间做了测试,发现:只要一坐下,就密码错误,站起来就好了。

这个 Bug 在他的职业生涯中持续了好几年。

直到有一天公司升级设备给他换了个键盘。

原来是老键盘上有两个键装反了,站着打字是看着键盘,坐着盲打就错了。
ybh37
2015-08-22 20:15:32 +08:00
有很多,都忘了
现在遇到一个,调试了一天也没结果
iOS 空载音频 raw data 经过 FFT 变换后的值随着时间的延长逐渐变大……
没找到办法呢
rrfeng
2015-08-22 20:21:45 +08:00
昨天我司一群人在调试 nodejs
用 PM2 启动的程序总是在 web 上一点就挂, node 直接运行的就没问题……

研究半天无果,我去看了一眼,原来 PM2 开启了 watch ,然而程序会在当前目录写一个临时文件。于是就呵呵哒了!
lianyue
2015-08-22 20:41:37 +08:00
foreach ($array as $key => &$value ) {
xxxxxx..........
}



..............

$value = xxxxxx; or foreach ($array2 as $key => $value )
xxxxxxxxxxx
xxxxxxxxx........... 坑了我半天
knightdf
2015-08-22 20:47:49 +08:00
写错单词的时候
zhengnanlee
2015-08-22 20:49:51 +08:00
Dongdong36
2015-08-22 21:08:51 +08:00
mongoose...

第一次,取不到数据,因为集合名称没变复数

第二次,取不到数据,因为一个单词的复数写错了...

调试好久...
Strikeactor
2015-08-22 21:40:54 +08:00
又想起一个
在 Openshift 改 PHP 代码,结果总是不变
后来气得把所有代码全删了,发现竟然还是能跑
查了才知道这坑货默认把 APC 打开了。。

缓存问题真的是神坑
tb4649120073rs
2015-08-22 22:52:09 +08:00
@lianyue 这个会有什么问题?
xcv58
2015-08-22 22:55:21 +08:00
自己实现虚拟内存,多核多进程运行时偶尔出错。
undeflife
2015-08-22 23:15:40 +08:00
以前看到一个 每天 5 点以后网站就无法访问,百思不得其解,决定现场蹲守,一整天一切正常,直到下班,前台 MM 说 我下班先回去了,小 X 你走的时候记得把那个服务器给关了.
gamexg
2015-08-22 23:37:17 +08:00
一个坑。

```
>>> l = (a for a in range (3 ))
>>> for i in l:
print i


0
1
2
>>> for i in l:
print i


>>> (a for a in range (3 ))
<generator object <genexpr> at 0x023F7698>

```

有一次看到别人代码里面用(a for a in range (3 )),以为生成的是 tuple 提高性能。后来就用了一次,结果发现是 generator ,只能用一次 ...
jarlyyn
2015-08-22 23:42:55 +08:00
<script type="text/javascrept">
xxxx
</script>
aheadlead
2015-08-23 00:04:47 +08:00
大致是这样 opengl in C

int a[3];
a[0] = xxx;
a[1] = xxx;
a[3] = xxx;

结果导致大概那一个绘图算法,十次里面有九次是正常的,怎么查 tmd 也查不出。

后来多亏了 valgrind 发现了。

最后是终端配色的锅,数字和背景色有点像…写代码的时候手滑,按错了,嗯,应该是这样
garfieldWu
2015-08-23 00:20:18 +08:00
我觉得微信的授权接口算是比较难调试的了,参数顺序都会导致授权失败。
没有文档,没有错误信息,最后 google 了好久才偶然找到原因
Smilecc
2015-08-23 00:27:41 +08:00
主站是 MediaWiki ,我写的登录接口,在线上跑了三个月没问题,突然有一天跪了,主站程序也没升级,我至今也不知道问题所在。
iyaozhen
2015-08-23 00:31:54 +08:00
看来缓存的锅挺多的。

@garfieldWu 微信的接口本来就是这样的呀,认证的时候需要按照 ascii 排序,更坑的是基础的那个开发者模式认证是要按 value 的 ascii 排序, weixin js sdk 里面的有个认证是按照 key 的 ascii 排序,当时极度的怀疑自己的人生了。
jianleer
2015-08-23 00:53:40 +08:00
估计程序员最难测的 bug 是找不到女朋友吧
nooper
2015-08-23 00:54:03 +08:00
我会列出禁止用户注册名称,一系列。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/215188

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX