调试技巧的零星记录
最近公司发起了一个分享调试技巧的活动,正好这个是我自以为良好的方面,所以也在博客中记录一下。
虽然良好的编码习惯可以一定程度上减少bug的发生,但bug依然是程序员必须要面对的问题,这里仅记录bug发生后的事情。
我认为,从被报告bug开始,需要经过如下步骤:
1.确认bug:
a.确认是否确实是bug
b.确认bug类型:需求里的逻辑错误、需求理解错误、设计上的错误、功能性错误、功能表现错误、表现不准确或会误导用户的错误。
2.定位引起bug的地方:
可能是一个或多个文件中的代码引起。一般用排除法定位。
3. 解决bug:
这个没什么好说的,该怎么改就怎么改。
4. 验证:
这一步非常重要,在修复bug后,需要对bug所属功能和可能影响的功能进行测试。这是为了保证bug已被正确修复,且没有产生新的bug。
5. 在你的大脑中缓存该bug:
出bug不可怕,可怕的是多次出现同一个bug。所以请对改过的bug留下印象,特别是那些让你留下过痛苦回忆的bug。所谓的资深,无他,只是犯过的错误比别人多而已。
以上几个步骤中,排除法可以用在每个步骤,简单实用,效果卓越。
此外,平时应该多学习和思考各种技术的底层原理,这能让改bug时事半功倍。
遇到疑难bug时,最好忘记"不可能"这三个字,根据底层原理来思考推敲,往往疑难的bug的根源就在大多数人认为不可能的地方。