Debug 基本技巧
1. 快速找到bug所在的地方。
使用二分查找法。将出现bug的模块大致分为几个步骤,从中间开始打断点,然后通过调试判断问题出在该断点的前面还是后面,确定之后再运用二分查找法继续调试,如此循环3、4次之后,基本上可以确定问题出在哪里。
2. Debug 时将参数改成自己需要的值。
调试时有时候需要看看不同的参数值程序走到哪里,但是重新再操作一遍很麻烦,这个时候,可以试试看直接在debug过程中改变参数值。
2.1对于基本数据类型,打开Variables视图直接改值,如下图所示:
2.2对于对象的改值,在Variables视图下,在该对象上右键选择”Change Value…”,
在出现的框框中给对象重新赋值即可。如下图所示:
3. Debug 时添加条件查看程序。
3.1首先在文件中写出你要查看的code,然后选中它,鼠标右键,选择Watch,然后我们会看到Expressions视图被打开,刚才所写的code及其值都会出现。如下图所示:
PS:直接打开Expressions视图,然后Add new expression也可以。
Inspect功能和Watch类似,只是它是用于临时查看,而Watch是永久的。
也可以直接改变条件查看
4. Breakpoints 视图
4.1调试时我们会打很多断点,但是有时候不是每一个步骤都需要执行,这时候可以打开Breakpoints视图,把前面的勾去掉。
4.2有时候我们想让程序完全走完,但是又不想把断点全部去掉这时候点击下面的按钮就OK了,很方便。
4.3有时候执行循环时,循环次数太多,但我们只需要查看其中某一次的值,如果一直按F6执行繁琐,这时候我们在选中这个断点,勾选Hit count,输入想要查看的次数,然后保存,再运行Tomcat,程序就会直接运行到我们想要的地方。如下图所示:
4.4添加条件执行。在debug过程中我们添加条件,让程序执行到想要的地方。可以在Breakpoints中勾选Contional,然后在出现的文本框中输入条件,执行之前一定要先保存。如下图所示:
4.5如果程序直接报错,可以点击下图所示按钮,然后输入报错信息,可以找出是哪里报错,或是看打印出的堆栈,找到报错行。
5. 调试时如果想把某段执行过的程序再执行一遍,但是却不想重头来过,这个时候,可以在Debug视图中,选中你想要再执行一遍的方法,鼠标右键,选择Drop To Frame。
或者直接点击下图所示的按钮,也可以退回再次执行。