程序调试源码阅读
1.程序千变万化,针对具体的程序要制定具体的调试方案,但总的思想是不变的,动静结合,静态抓整体,抓重点,动态抓细节。
2.多种方法使用能达到理想的效果
3.有目的有重点的阅读软件的说明文档,包括介绍软件功能,设计过程,算法细节等,挑选出感兴趣的部分详加阅读。
4.一般比较源码都有api(API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。),api文档可以让你在不看源码的情况下快速找到你感兴趣的类,或者需要重点分析的功能类。
5.精选测试用例,要求:简单,麻雀虽小,五脏俱全;能理解输出结果,借助简单的程序用例明白程序的运行流程
6.刚开始分析的时候要找出程序主要的数据结构类(比如,spring的BeanDefination,hadoop的DataNode,NameNode等),然后再
在该类中的某些地方设置断点,利用eclipse调试时的函数栈,可以快速明白数据是在何处被赋值的,又是在何处被使用的。这对明白程序很有帮助,也能快速定位到感兴趣的点。
7.一般程序的源码都比较大,如果顺序阅读某个感兴趣的类的源代码的话可能会淹没在代码的海洋中,这是可以
a、利用java search,既能快速找到方法、变量、类等的定义点,也能找到引用点,这样就能知道这些元素的大概使用方法,借助断点可以动态分析这些元素。
b、利用类继承视图,可以明白一个类是怎么继承来的,对类会有更深的了解。
8、eclipse调试机制决定了java的tostring方法的重要性,在调试的过程中,我们很想知道一个主要的数据结构里面的某个变量的具体值,但这个变量隐藏的比较深,这是就可以重写toString方法。
浙公网安备 33010602011771号