看到一个段子:
然后就想到了一个自己遇到的最难调的 bug 是这样的:给一个刚生产出来的 arm 开发板写 bootloader ,然后每次都是刚跑一下就挂了,然后各种修改代码、仿真器监控,都解决不了,然后怀疑自己、怀疑人生、怀疑硬件,就去问了一下做板子的哥们,一句话把我喷死了: fpga 的看门狗复位了 cpu 。 大哥你手也太快了,刚生产出来的板子你就刷 fpga 了。
说说你们难调的 bug 吧。
1
Strikeactor 2015-08-22 19:51:36 +08:00
调用一个网站的 API 一直是错误结果,明明照着文档来的,怎么改都没用
后来发现是用的梯子服务把第一次的请求结果缓存了 |
2
vitovan 2015-08-22 19:52:24 +08:00 via Android 3
说个看来的,忘记出处了:
从前有个系统管理员,平时去机房登录服务器时都是站着操作。 有一次腰疼,搬了个凳子坐在了机器前面,完蛋,死活登录不进去,提示密码错误。 于是他站了起来,重新输入了一次密码,进去了。 后来他觉得奇怪,于是抽时间做了测试,发现:只要一坐下,就密码错误,站起来就好了。 这个 Bug 在他的职业生涯中持续了好几年。 直到有一天公司升级设备给他换了个键盘。 原来是老键盘上有两个键装反了,站着打字是看着键盘,坐着盲打就错了。 |
3
ybh37 2015-08-22 20:15:32 +08:00
有很多,都忘了
现在遇到一个,调试了一天也没结果 iOS 空载音频 raw data 经过 FFT 变换后的值随着时间的延长逐渐变大…… 没找到办法呢 |
4
rrfeng 2015-08-22 20:21:45 +08:00 1
昨天我司一群人在调试 nodejs
用 PM2 启动的程序总是在 web 上一点就挂, node 直接运行的就没问题…… 研究半天无果,我去看了一眼,原来 PM2 开启了 watch ,然而程序会在当前目录写一个临时文件。于是就呵呵哒了! |
5
lianyue 2015-08-22 20:41:37 +08:00 1
foreach ($array as $key => &$value ) {
xxxxxx.......... } .............. $value = xxxxxx; or foreach ($array2 as $key => $value ) xxxxxxxxxxx xxxxxxxxx........... 坑了我半天 |
6
knightdf 2015-08-22 20:47:49 +08:00
写错单词的时候
|
7
zhengnanlee 2015-08-22 20:49:51 +08:00
|
8
Dongdong36 2015-08-22 21:08:51 +08:00
mongoose...
第一次,取不到数据,因为集合名称没变复数 第二次,取不到数据,因为一个单词的复数写错了... 调试好久... |
9
Strikeactor 2015-08-22 21:40:54 +08:00
又想起一个
在 Openshift 改 PHP 代码,结果总是不变 后来气得把所有代码全删了,发现竟然还是能跑 查了才知道这坑货默认把 APC 打开了。。 缓存问题真的是神坑 |
10
tb4649120073rs 2015-08-22 22:52:09 +08:00
@lianyue 这个会有什么问题?
|
11
xcv58 2015-08-22 22:55:21 +08:00 via iPhone
自己实现虚拟内存,多核多进程运行时偶尔出错。
|
12
undeflife 2015-08-22 23:15:40 +08:00
以前看到一个 每天 5 点以后网站就无法访问,百思不得其解,决定现场蹲守,一整天一切正常,直到下班,前台 MM 说 我下班先回去了,小 X 你走的时候记得把那个服务器给关了.
|
13
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 ,只能用一次 ... |
14
jarlyyn 2015-08-22 23:42:55 +08:00
<script type="text/javascrept">
xxxx </script> |
15
aheadlead 2015-08-23 00:04:47 +08:00 via iPhone
大致是这样 opengl in C
int a[3]; a[0] = xxx; a[1] = xxx; a[3] = xxx; 结果导致大概那一个绘图算法,十次里面有九次是正常的,怎么查 tmd 也查不出。 后来多亏了 valgrind 发现了。 最后是终端配色的锅,数字和背景色有点像…写代码的时候手滑,按错了,嗯,应该是这样 |
16
garfieldWu 2015-08-23 00:20:18 +08:00
我觉得微信的授权接口算是比较难调试的了,参数顺序都会导致授权失败。
没有文档,没有错误信息,最后 google 了好久才偶然找到原因 |
17
Smilecc 2015-08-23 00:27:41 +08:00
主站是 MediaWiki ,我写的登录接口,在线上跑了三个月没问题,突然有一天跪了,主站程序也没升级,我至今也不知道问题所在。
|
18
iyaozhen 2015-08-23 00:31:54 +08:00
看来缓存的锅挺多的。
@garfieldWu 微信的接口本来就是这样的呀,认证的时候需要按照 ascii 排序,更坑的是基础的那个开发者模式认证是要按 value 的 ascii 排序, weixin js sdk 里面的有个认证是按照 key 的 ascii 排序,当时极度的怀疑自己的人生了。 |
19
jianleer 2015-08-23 00:53:40 +08:00 1
估计程序员最难测的 bug 是找不到女朋友吧
|
20
nooper 2015-08-23 00:54:03 +08:00 via iPad
我会列出禁止用户注册名称,一系列。
|
21
suifeng 2015-08-23 01:01:22 +08:00
我有一次因 api 缓存调试了 1 天,第二天才想到是缓存。。。
|
22
ljbha007 2015-08-23 01:22:02 +08:00
把学校上外网的电信拨号器 netkeeper 移植到路由器上的时候 需要通过 802.1x 协议接入学校内网
调了一个月 始终不通 最后发现是 BCM63XX 系列 SoC 芯片自带硬件解析 802.1x 协议的功能 但是这个功能在有线网的状态下有 BUG 导致有线网状态下 802.1x 协议提前中断 调了一个月最后追踪到 BUG 的位置 然后写给驱动作者 最后作者打了个 patch 终于给解决了 |
24
lianyue 2015-08-23 08:29:43 +08:00 via iPhone
@tb4649120073rs $array 最后一个值 会被后面的 替换 因为引用
|
25
leemail 2015-08-23 09:36:42 +08:00 via iPad 1
|
29
Actrace 2015-08-23 09:59:40 +08:00
我遇到的最难调的 Bug 就是产品经理的脑子抽了.
|
31
617019296 2015-08-23 10:55:59 +08:00 via Android
实习小生一枚,,表示前人写的混乱代码改 bug 很麻烦。各种类调用,,找代码都累死!!
|
32
loading 2015-08-23 11:04:32 +08:00 via Android
以前不知道浏览器缓存,自己点 shift 刷新, css 调试好后打电话去说整好了,然后对方电脑点刷新样子就是不变~
最后才知道要 xx.css?_t=233 |
33
loading 2015-08-23 11:09:45 +08:00 via Android
当时是 .asp 我用了 index2.asp 和 style2.css 进行暴力在线调试~
好了后,改名~ |
34
fxxkgw 2015-08-23 11:36:02 +08:00
哥们你是做交换机的吧。。。
|
35
cyr1l 2015-08-23 11:42:54 +08:00
找不到对象
|
36
oska874 OP |
37
loryyang 2015-08-23 13:18:18 +08:00
大小写拼错,然后 vim 关闭了 case sensitive ,一个巨长的函数名,半天没查出来
|
39
popu111 2015-08-23 14:08:02 +08:00
众(重)口难调
|
40
isunmoon 2015-08-23 14:08:08 +08:00
这说的就是我,,,我是他旁边的 java ,只不过当时我的昵称是 undefined ,,,我不是老张,是老王。。。
|
41
danny200309 2015-08-23 14:15:52 +08:00
always new objects, but never found "sweetheart"!
|
42
lilydjwg 2015-08-23 14:44:04 +08:00
@gamexg 除了 () 之外,没逗号怎么会有 tuple 。那个括号完全是给词分组用的。我一般是 tuple (xxx )。
|
44
Reficul 2015-08-23 20:34:31 +08:00
前段时间,学着写操作系统,然后 GDT 设置完 JMP 一直保护重启。 GDB 调试, qemu 查看寄存器各种都表示 eip 飞到了不知道哪去。三天后我把前面一行 sprintf 注释掉之后世界清静。用的 C 库里面因为 uchar 和 char 转换的关系,中间不知道咋内存泄漏了。
现在调试多进程那里,因为各种跳来跳去,进程的链表还不知道为啥老是被破坏掉。。。。纠结了两天了。 我是菜比啊 (°ཀ°) |
46
xpol 2015-08-24 14:17:19 +08:00
c 语言,行注释末位多了一个 \
|