We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
主要是在知乎看到龚敏敏大神的一篇文章才引发的思考。文章的评论中有个回复比较有意思:
clang里有个bug,在windows平台上编译出来的dll,类的导出函数都多了个下划线前缀,从2011年开始被喷了4年,无效。ms一push,3天就修好了。(然而那个补丁超级邪恶。检测到下划线就去掉,而不是找到为什么会多一个下划线)
以上的回复我有一些删改。
对此我引发的一些思考是,对于大型的复杂精密的系统软件的BUG修复问题:修BUG是找到出现BUG的本质原因,还是可以在适当的情形下考虑从其他角度规避造成BUG这个现象就可以了?简单来说,就是只要让该现象不出现就可以了。
如果是正常情况下,在我们的工作中这样修复BUG是万万不行的,因为这只是隐藏问题,而不是解决问题,这是一种不负责任的做法。我相信只要是一个负责任的工程师都不会这样做。
但从以上微软修复BUG的例子来看,工程师们选择的是后者。因为编译器是一个很精密复杂的工程,在没经过严格的单元测试下不会发布,所以测试编译器的正确性也是含金量很高的活。对于这种精密复杂的系统修改它的BUG就不是那么容易的,而且又在极其有限的时间内修复,那么就难上加难了,因为很容易牵一发而动全身,一旦出现一些诡异难缠的BUG,即使是经验丰富的工程师短时间内很难找到问题症结所在。
最后,我对这种方式的修BUG行为做个总结,如果要以这种方式解决问题,那么你应该明确评估以下几点
最最后,真的是最后了 = =! 分享一个我平时Debug的方式:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
title: 有关于修BUG的一个思考
date: 2016-08-26 10:14:16
tags:
- 软件调试
主要是在知乎看到龚敏敏大神的一篇文章才引发的思考。文章的评论中有个回复比较有意思:
以上的回复我有一些删改。
对此我引发的一些思考是,对于大型的复杂精密的系统软件的BUG修复问题:修BUG是找到出现BUG的本质原因,还是可以在适当的情形下考虑从其他角度规避造成BUG这个现象就可以了?简单来说,就是只要让该现象不出现就可以了。
如果是正常情况下,在我们的工作中这样修复BUG是万万不行的,因为这只是隐藏问题,而不是解决问题,这是一种不负责任的做法。我相信只要是一个负责任的工程师都不会这样做。
但从以上微软修复BUG的例子来看,工程师们选择的是后者。因为编译器是一个很精密复杂的工程,在没经过严格的单元测试下不会发布,所以测试编译器的正确性也是含金量很高的活。对于这种精密复杂的系统修改它的BUG就不是那么容易的,而且又在极其有限的时间内修复,那么就难上加难了,因为很容易牵一发而动全身,一旦出现一些诡异难缠的BUG,即使是经验丰富的工程师短时间内很难找到问题症结所在。
最后,我对这种方式的修BUG行为做个总结,如果要以这种方式解决问题,那么你应该明确评估以下几点
最最后,真的是最后了 = =! 分享一个我平时Debug的方式:
The text was updated successfully, but these errors were encountered: