debug是日常性的工作,对于一些bug的定位,需要一定的技巧才能解决。总的来说,有以下几种方法:
1. 对比法。
如果一些程序,在别人的机器,或者服务器上运行时正常的,在本地怎么都不行,就可以对比一下,一些环境的设置,一些配置文件是否相同,如果不同,改成相同的再试。另外,有些程序改动以后,运行不正常了,以前的是正常的,可以用比较工具去对比,到底改动了哪些东西,哪些和正常运行的程序是不同的。
这种方法,通常比较省事,不需要懂得更多的为什么,往往通过对比,就把问题定位出来了。
2. 深入跟踪。
跟踪是最常见的方法。一般手头有代码,比较好操作。难的情况是,如果程序里面引用到了一些第三方的包,这个就比较麻烦。如果是开源的,去下载源代码,可以继续跟踪,直到找到问题为止。
这种方式相当的需要耐心,特别是层层调用,不知道问题出在哪里,层次关系特别复杂的情况之下,要保持头脑的清醒。
3. 折半查找。
对于好多问题,需要打断点,问题的出现非常的明显,但是不知道哪些步骤出了问题。比较快的就是在程序的中间打断点跟踪,相关的数值对不对,状态是不是好的。通常对于一些页面的调试,也可以用这种方式,有时候页面显示不正常,可以一段一段的去掉,最后找到出问题的那个地方。
待完善。。。