学习软件调试原理的意义
曾经一度我面试应聘者的一个问题就是调试断点的工作原理,令我非常遗憾的是,无论是刚毕业的本科生或研究生,还是有多年工作经验的老程序员,都未能给我一个满意的答案。
当我与一些朋友聊起这个话题时,我遇到一种说法,令我深思。这种说法是我知道这个有什么意义呢?
是啊,现今是个知识爆炸的年代,新技术、新理念层出不穷,我们必须有选选择,目标明确的取舍自己的学习和努力方向。
但是,在这个前提下,我仍然认为调试原理是每个程序员的一门必修课。这不是我的一家之言,很多资深的行业专家,他们也在各种场合发表过类似的观点。
今年来,我们已经开始越来越重视软件测试,探索软件测试的新方法,提高软件测试的效率。但是软件调试却常常被忽略了。
有人做过调查,80%以上的程序员是把一半以上的时间用在程序调试上的。很多项目的延期以及程序员的加班也与要调试某个/些棘手的BUG息息相关。
学习调试原理是提高调试效率的根本途径。试想如果我们不了解调试工具的工作机制,那么怎么可能最大限度的发挥它的功能呢。如果我们根本没听说过硬件断点,那么我们怎么能利用它解决普通断点无法完成的任务呢?
随着软件向大型化和复杂化方向发展,软件调试的难度也在不断增大。对于一些小的软件,我们可以不讲究什么方法,单步跟踪从头至尾也不需要太多时间。但是如果是要调试一个大的系统,不讲究必要的技巧就很难行的通了。
因此本人强烈建议大家提高对软件调试技术的重视程度,有计划,有意识的学习一些基本的软件调试原理。
也欢迎大家发表不同意见。