程序员经历过的最难调试的Bug是什么?
程序员与Bug是一对相爱相杀的存在,既要在解决Bug中get成就感,同时也讨厌自己亲手写的代码出Bug。”程序不息,Bug不止”,程序员在与Bug的斗争中,也有很多有趣的事情发生,播妞总结了程序员调试Bug的种种传奇经历。
01
@网友王译:
当时我们在做 Egret Runtime 的第一个版本,可以理解为他就是一个 Android GLSurfaceView 渲染器。
当我从开发工程师手中拿到第一个新鲜出炉热乎的开发版的时候,我发现一个现象,就是游戏整个 App 会不时崩溃掉,crash日志大概描述的是 C++ 挂掉了,当时我由于经验不足,还不会根据 C++ 的 dumpstack 去检查是哪个模块的问题。所以我决定先尝试重现一下这个问题。
重现步骤:
1、把手机放在桌子上,打开 App,观察5分钟,未崩溃
2、5分钟的时候接了个电话,接完后 App 崩溃
3、意识到可能是 Android 生命周期问题导致的,于是重新打开 App,反复在前台 / 后台切换,未崩溃
4、由于长时间弯腰盯着桌子上的手机,有些不舒服,于是把手机拿起来,想舒服的后仰坐在工位上继续重现,然后在把手机拿起来的一瞬间,崩溃。
5、吓一跳之后,小心翼翼的重新打开 App,思索自己刚才到底做了什么,同时紧握着手中的手机继续盯着屏幕,观察5分钟,未崩溃
6、心情暴躁,把手机扔到桌子上,崩溃
7、惊愕......
8、重新把手机拿起来,再次扔到桌子上,崩溃
9、给开发的同事讲,我重现出了这个BUG,只要用力把手机往桌子上砸一下,就会崩溃
10、开发同事匪夷所思的表示没有调用过陀螺仪之类的 API,只是个简单的渲染。
11、现场演示狠狠的砸了一下我的手机,崩溃重现
12、开发同事狠狠的砸了一下他自己的测试机,未重现,于是拿过来我的手机,进行真机调试( 每次调试就要砸一下我的手机....请自行脑补我的表情)
13、最后发现,原来是当手机被狠狠砸一下的时候,屏幕旋转方向发生了改变,然后触发了 OpenGL 底层渲染的问题没有 Handle 住 ......
14、用3分钟修复了此问题,然后对着被砸了20多次的手机泪流满面.....
02
@网友条件状语从句:
写JS,手机没电了,用同事老张的安卓机调试,非常简单的获取用户微信昵称,结果就是死活获取不到,一直显示null。也许是跨平台问题,因为之前在自己iPhone上是没出bug的,拼命看api文档,但都没提到这方面。急死我了。
刚刚老张告诉我他的昵称就是null
03
@网友王杰:百分之百出现的bug都是好bug,多线程里的能重现的bug都是上帝给予的惊喜!
04
@网友weishuo1999:某大型电商平台,突然有一天,收到C2C店主反馈,看到的订单不是自己的,看到后台的商品列表也不是自己的。当时在睡午觉,看到这个问题,立马吓醒了,平时5个投诉就是一个故障单,那还都是一点体验上的小问题,这种订单混乱,商品混乱的错误,真是要紧急死了。
于是,主管,总监都来看这个问题,一群大佬在后面看着,赶紧找最近几天的发布,测试情况,一个个回退,一个个检查,最后都无法解决问题。后续又有用户来投诉,直接电话联系,远程控制电脑,发现操作起来巨慢,于是顺口问了一下用户的网络是什么网络。
结果他说是:”某城宽带”,一瞬间,有点感觉了,继续问其他几个投诉的客户都是”某城宽带”,然后我们打电话到那个宽带的运营商,得到的回复是”年底了,为了省流量,他们做了一部分缓存”
他们做了缓存
做了缓存
缓存
存
05
@匿名网友:
说一个前几天事情想拿刀砍死同事的事情
背景是这样:我们是做客户端游戏的,当单元测试过完后,整合起来走整体流程的时候,发现运行模拟器是黑屏的,一看就是出BUG了,连游戏的FP画面都没有绘制回来,
于是乎查看运行记录,看抛出的异常,我丢,根本就没有异常,可以排除没有下载到FP的图片(抱歉由于是公司正准备上线的项目,所以体谅下不好截图),难道是某个同事在被程序员鼓励师“鼓励”的时候,手贱没有throw出异常吗?于是一项一项在代码中找,在排除有抛出后,那我就重头来吧,有读取引擎中的下载和绘制,有存档新用户的log信息,有获得资源版本号,难道是测试服务器堵塞了?
于是又root进服务器,查进程,查占用资源等等,一切经验都无能为力而感到绝望,只有去问写这个页面和框架的人一起询问下,结果是由于美工的FP图片出问题,所以就把FP的页面背景全部绘制成黑色了,而且还忘记在上面用程序字体写上“此处是FP”,顿时心里就一万条草泥马跑过,连第二天上班望那位页面小哥都是充满敌意的,分分钟想砍翻他。
附第二天聊天记录
06
@网友李意扬:
全国电子设计大赛,比赛做逆变器相关,做出来效率大于100%,找不出原因,评委也找了半天找不出原因。然后就给了一等奖。
07
@网友shuson:那是一个大雪纷飞的傍晚,农历大年二十九的傍晚,我站在回家的春运绿皮车内,包里装着一叠实习结束后发的工资,心里想着回家可以给爹娘买添置年货了。
这时候,电话响起来了,是测试组长打来的,接不接?可是漫游啊,接吧!因为组长都给我打电话了,肯定问题严重。接通后他第一句话就是,看QQ群信息,log已经分享到群里了,然后简单了描述了一通。
我撂下电话,打开qq,别问为啥没笔记本,因为我没钱买。借着N72的2寸小屏,我打开了txt格式的log,加载了好久,心疼流量。bug是在保存用户资料的时候,填入的用户出生年月日没有保存。像这样的问题,要是在公司,首先去看数据库,然后再看代码。
可是测试那边的人为了着急回家肯定就先甩锅咯。根据log,没啥异常。我回复说log没毛病。那边就着急了,让我凭空跑一遍流程。我擦咯,大脑需要虚拟出来vs,还需要虚拟出来数据库表,还要虚拟asp页面结构啊。
要知道,code不是我写的啊,数据库表也不是我建的,页面也不是我切的,我只是个实习生,看了三个月代码而已。
任凭记忆穿梭,我告诉组长,可能是页面上展示逻辑问题。组长重新接过锅,准备甩向前台同学了。
至此,我快到家了。
以上程序员遇到的充满玄学的Bug调试经历,你是否有遇到呢?你曾经经历过哪些哭笑不得或者趣味十足的代码调试经历,留言告诉播妞吖~
程序员经历过的最难调试的Bug是什么?相关推荐
- Java程序员应该知道的10个调试技巧
摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试 ...
- windows程序员进阶系列:《软件调试》之O--- WinDbg使用介绍
windows程序员进阶系列:<软件调试>之O--- WinDbg使用介绍 拥有一个顺手的武器是每一个武林高手梦寐以求的.对于windows程序员来说,WinDbg调试器就是我们的武器.熟 ...
- 10年程序员经历总结及后续规划
十年程序员经历总结 2011年从学校毕业偶遇网页游的戏兴起,有一款SNS游戏叫开心农场,前端技术使用Flash,于是选择加入Flash大军,先去了一家小公司,接触了不少Flash类型的项目: 企业开发 ...
- 网友们碰到过的最难调试的 Bug
在 Quora 上有一个和 Bug 相关的热门问答帖:<What's the hardest bug you've debugged? | 你调试过的最难 Bug 是?>. 我大中国的程序 ...
- 十二年来最强购房潮:报价 6 次,疯狂加价,华人程序员在硅谷买房太难了!...
作者 | Amelie 出品 | 硅兔赛跑(ID:sv_race) "12年来硅谷最强购房潮显现,上次那波在2018年高位站岗的购房者今年要回本了." 要说到硅谷这个寸土寸金的地方 ...
- 想转行做程序员?转行不难,难的是以后不后悔。
我自从入了程序员这行,时不时就会被问到: "听说程序员收入不错,我也想转行当程序员,你觉得我适合吗?" "不是计算机专业的,怎么走好程序员之路?" " ...
- 从3K到30K这个程序员经历了什么
记得上次有人问过我30K的程序员日常都会干些什么,什么时候才能到你这样.首先我技术其实很菜的,只能说我很幸运而已,其次我根本没法回答这个问题,因为每个人所走的路不一样所追求的也不一样.17岁来到这座城 ...
- 程序员这条路很难走,你还要坚持下去吗?
可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...
- 如果我告诉你,程序员这条路很难走,你还要坚持走下去吗
可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...
- 如果我告诉你,程序员这条路很难走,你还要坚持下去吗
可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...
最新文章
- java基础学习总结——接口
- vue源码解析之选项合并(二)
- DBD::mysql::db do failed: Table cl_access was locked with a READ lock and can't be updated
- Python——常用模块
- 用css3制作旋转加载动画的几种方法
- CV与IP:基础,经典以及最近发展
- php table 下拉框,LayerUI的table 里面加 select 下拉框 – Fly社区-Mikel
- python一节课多久_第一节课 python简介
- Kuboard云原生管理工具
- html 响应式 meta,HTML - 移动端 meta viewport
- 在真机上 模拟GPS
- 免费提供离线地图部署服务
- POI实现合并单元格
- 多线程读文本写入OracleNoSQL数据库
- c语言大小写字母变换,C语言学习:任意大小写字母转换
- python中的result是什么_《python中result什么意思》电影_python中result什么意思BD高清完整电影在线...
- Only one expression can be specified in the select list when the subquery is not introduced with EXI
- MongoDB——GridFS
- 2020年有寓意的领证日期_2020有寓意的领证日期 2020有意义的领证日子 - 中国万年历...
- python 赌场掷骰子游戏
热门文章
- linux如何安装php,linux下怎么安装php
- 埃特金方法c语言,C语言通用范例开发金典(含光盘1张)
- word2019关闭时无响应
- sata接口 图解 定义_【sata硬盘三个接口】sata硬盘接口图解_sata硬盘接口电路
- VMWARE启动失败
- Air202学习(4)官方例程(luat版)
- B站粉丝计数器 | ESP32轻松学(Arduino版)
- 畅捷通李鲲:云让自然语言处理在企业更快落地
- 微信支付服务器白名单,微信测试号白名单怎么回事?如何进行微信支付测试?
- 狗年出生的宝宝取名都有哪些注意事项呢?起名真不是简单事