201801-16 每日一博 | 记一次 JVM 堆外内存泄露 Bug 的查找 解Bug之路-记一次JVM堆外内存泄露Bug的查找前言JVM的堆外内存泄露的定位一直是个比较棘手的问题。此次的Bug查找从堆内内存的泄露反推出堆外内存,同时对物理内存的使用做了定量的分析,从而实锤了Bug的源头。笔者将此Bug分析的过程写成博客,以飨读者。由于物理内存定量分析部分用到了linuxkernel虚拟内存管理的知识,读者如果有兴趣了解请看ulk3(《深入理解linux内核第三版》)内存泄露Bug现场一个线上稳... 继续阅读 >
201602-15 程序员新人,如何在复杂代码中找 bug? 首先,从bug入手,了解codebase,应该是平衡mentor和新人之间利益最大的办法。其实要想入手最快,就应该是让mentor24*7的在你旁边手把手教你,但这根本不现实,也没有意义。修改bug入手,通过一个个小bug去了解整个project的结构和designpattern,对新人来说,这种学习既直观又不会被复杂的代码吓死。最主要的是,当你成功fix了一个bug,这种成就感是一个新入职的程序员勇往直前的动力。而且,修了一个bug,最重要的不是你unbl... 继续阅读 >
201601-25 非著名程序员:无bug,不生活 作为世界上最著名的一只,不对,应该是一个种类的虫子,它们无时无刻的骚扰着我们程序猿。正是因为有了它的存在,我们程序猿的生活才变得“丰富多彩,多姿多味”,换句话说就是让你的生活充满着崩溃。它就是世界上“非著名”的著名的虫子—bug。对于我们程序员来说:无bug,不生活。图片来源于网络1、什么是bug。及bug的产生。其实bug一词英文的愿意是“臭虫”或者“虫子”的意思,对于我们程序员来讲,bug意味着错误,... 继续阅读 >
201601-12 你碰到过的最难调试的 Bug 是什么样的? Bug是怎么来的?我们说,人是人他妈生的,妖是妖他妈生的,软件是程序员生的。软件是程序员的孩子,而人无完人,金无足赤!开发软件其实也要经历这些过程,程序员在生产软件,也在生产BUG!再牛逼的程序员,写出来的软件也有BUG。BUG就是软件与生俱来、不可脱逃的好基友。你碰到过的最难调试的Bug是什么样的? 1、程序员:王泽,去年做Android开发的时候遇到一个极其搞笑的BUG,自我感觉有必要说出来让大家... 继续阅读 >
201512-07 程序员最不想听到的词就是“bug”了吧! 在现今数字年代,计算机bug不但困扰着每个程序员,更会无可避免影响我们的生活,小到每个人的衣食住行,大到国家经济,世界局势。随着我们的生活方式渐渐的数字化、互联网化,数字世界的找虫和杀虫就变得越来越重要。软件史上有哪些著名的bug呢?让我们一起来回顾一下:1、万“虫”之母,史上留名(软件史上第一虫)1947年9月9日下午3点45分,GraceMurrayHopper在她的记录本上记下了史上第一个计算机Bug——在HarvardMark... 继续阅读 >
201510-19 程序员遇到bug的30种反应 开发应用程序是一项压力很大的工作,人无完人,工作中遇到bug是很正常的事,有些程序员会生气,沮丧,郁闷,甚至泄气,也有一些程序员则会比较淡定。如何进行修复bug的过程,是值得我们好好推敲的。我想分享一些有关程序员在努力修复bug时常说的话和冒出的想法。当氛围变得紧张的时候,这些话就会显得轻松幽默。最终,bug也会修复成功,你将会继续下一个任务。我相信许多web开发人员和软件工程师在编... 继续阅读 >
201510-19 程序员永远不要再犯的5个编程bug 当你开始成为一个程序员的时候,在编程的时候很容易陷入下面所述的一些坏习惯。作为一名程序员,犯错误不可避免,这是你学习编程课程中的一部分。在你的职业生涯中你会犯很多错误–有的特别、有的普遍–通过这些错误你可以学习如何避免在将来再犯同样的错误。但是如果你是一个初学者,你犯的错误可能会比其他人更频繁。那么如何才能避免大部分程序员每天都犯的这些普遍的错误呢?想要避免错误,就要对它有所了解。这也是为... 继续阅读 >
201509-23 不是你写的代码,修什么BUG 各位OSCer大家壕,今天是星期三!上班没商量的日子。@动弹办主任:编码一天下来,为什么这么累啊,@不是小白:日写代码三千行,不知不觉双眼盲!!!@开源中国首席骨科主任:应该明天就发布我个人的第三款开源作品 #PESCMSLOGIN# ,第三款作品要视我今天能否写完开发文档,否则就要延期了。最近一下子发布了两款开源作品,根本停不下来。 静候主任的作品!人民永远会记得你为开源作出的贡献!当程序员难... 继续阅读 >
201507-07 6 个简单的bug追踪技巧! 无bug不软件,你懂的。所有人都有他们邪恶的一面,所有的开发者都会在项目中犯错,即使是精心打造的程序也会掉链子。初看上去,记录和处理软件产生的错误信息是很容易的任务。但随着一个又一个版本的出现,已知的错误可能变多也可能变少。“送走旧的错误,又迎来了新的错误”——这是关于开发者的一个老笑话。为了控制错误,一个绝妙的产品横空出世,人们称它为缺陷跟踪系统。缺陷跟踪系统是什么,它的原理是什么?缺陷跟踪... 继续阅读 >
201504-11 前人挖坑,后人填坑如何把那些bug挖掘出来 写代码不免出点bug,没有人可以保证自己写的代码不出问题,而那些没有被挖掘出来的bug,便成了后来者哭笑不得的坑...这段时间公司全面 https 改造,涉及到域名的迁移,域名的迁移不是 nginx 做个映射就完事儿了,还有各种代码的去 schema,各种组件的搬迁,算是一个大手术!我看最近百度主站也升级到了 https,期间应该出过一次问题吧,貌似回滚了一次,他们遇到的坑应该还不算多,只是 www&nb... 继续阅读 >
201503-31 6个简单的BUG追踪技巧 初看上去,记录和处理软件产生的错误信息是很容易的任务。但随着一个又一个版本的出现,已知的错误可能变多也可能变少。“送走旧的错误,又迎来了新的错误”——这是关于开发者的一个老笑话。为了控制错误,一个绝妙的产品横空出世,人们称它为缺陷跟踪系统。缺陷跟踪系统是什么,它的原理是什么?缺陷跟踪系统是帮助程序员、测试员、项目经理搜集和控制软件中发现的错误(缺陷),并对消除这些错误的过程进行监控的一套软件。换... 继续阅读 >
201501-27 维护老代码中的那些坑 最近在给以前的老项目维护,说起来工作很简单,一个字:改Bug。这看起来平淡无常的工作,实际上凶险无比,藏坑无数。时至今日,感觉整个人都得到了升华。在睡觉前抽空写篇博客,和各位分享一下踩坑经历,一起品味其中的种种酸苦辣(没甜)。为保证个码隐私,文中代码均为化名,还望谅解。如有雷同,纯属巧合(可以通过 gitblame 查看是谁写的)。第一回:变量命名没点数,有时写着还手误如果要折磨一个强... 继续阅读 >
201501-01 为什么总有无数的Bug困扰着程序员 在代码上耗费的时间和资金越多,程序防御力就越强——但是黑客们总有办法找到其中的漏洞。又是整整一个月,整整一个月忙着安装补丁——回环往复、无穷无尽,一想起来就头大。我们的软件编码工具有着默认的内置安全防御措施,我们的编程语言是安全的,我们的程序员使用的是SDL (securitydevelopmentlifecycle)编码工具和技术,我们的操作系统有着不断升级的安全设置,供应商也一直不断地... 继续阅读 >
201412-30 修复bug的12个关键步骤 boss:那么,你需要多长时间来修复这个bug?没有经验的程序员:给我一个小时?最多两个小时?我能马上搞定它!有经验的程序员:这么说吧,钓到一条鱼要多久我就要多久?!要多少时间才能修复bug,事先是很难知道的,特别是如果你和这些代码还素不相识的话,情况就更加扑朔迷离了。JamesShore在《TheArtofAgile 》一书中,明确指出要想修复问题得先知道问题的所在。而我们之所以无法准确估计时间是因为我们... 继续阅读 >
201412-12 能存活19年的bug不是bug——有感于微软宣布修复了一个存在了19年的安全漏洞 近日,各大网站,包括新浪、腾讯、网易、搜狐都报道了一则关于微软宣布修复了一个存在了19年的安全漏洞的新闻,以腾讯科技为例,它的标题是《微软修复已存在19年的漏洞》。对于一个软件制造界外的人来说,这是一个大快人心的消息,就跟一个隐藏了19年的纳粹分子终于被抓住的新闻一样轰动。但以程序员为职业的我,听到这样一个消息,却有一种非常不解、甚至是荒谬、搞笑的感觉。从软件生产的角度讲,如果一个bug能存活19年,那... 继续阅读 >