定位bug经验之谈

来源:互联网 发布:windows aero 编辑:程序博客网 时间:2024/06/04 23:37
写代码,编程序难免出现bug,甚至有时候有些Bug会溜到你手上让你处理的时候,使用什么技巧来找出这个隐藏在代码世界中的错误呢?
首先,你得明白,出现Bug的功能到底是什么功能,也就是业务逻辑(流程)是什么,大部分情况下你都能以此来定位出现bug的原因。
如果出现了比较棘手的情况,比如说出现了一些随机的bug。在计算机的世界里没有‘巧合’的说法,只有必然。那么,一些看似随机的bug是什么原因所导致的呢?
想一下是否是多线程环境,如果是的话检查一下共享变量使用是否正确,之后想一下功能是否是可以异步执行,如果不是,那么这部分代码当初的设计及企图就是错误的。
想一下出现bug的功能块是否使用了随机数从而导致的另外一个逻辑分支,或者一个特殊的情况所导致的。
想一下一些语言细节所导致的随机bug。比如说C++的sizeof(指针)大小永远是4,比如说lua脚本语言全局变量滥用,比如说使用非法的指针索引。
想一下系统平台的问题……
如果这时候还不能定位Bug,你把那段代码翻来覆去看了不下10遍,但是还是没有找到bug。那么考虑一下内存泄露或者不足的问题。比如说显存的管理出现问题,导致一些异常bug。如果引用了第三方库,看一下该库出现的bug。
原创粉丝点击