零基础学Java第七讲---调试(IDEA)

一、什么是调试

首先,我们要明白,在工作中,我们并不是大多数的时间都在敲代码。就像是说把被子叠成豆腐块一样,讲究"三分叠,七分修",对于我们程序员而言,敲代码只是一小部分,更多的时间要用来调试。

1、什么是调试?

当我们发现程序中存在的问题的时候,我们去查找和改正错误的过程称为调试(debugging)

调试的⼀般途径是采用各种方法逐步缩小bug所在的范围,最终定位bug的准确位置。

二、常见的调试方式

1、阅读代码跟踪程序问题

(1)适用于代码量短小

(2)常见的方式是逐行阅读代码和插入⼀些打印语句观察代码的问题

2、使用工具

(1)适用于复杂程序

(2)使用集成开发工具中集成的调试器

三、使用IDEA调试Java程序

1、打断点

把鼠标放在行号左侧这里,点击鼠标左键,出现红色按钮

2、启动调试

鼠标右键,点击Debug...

3、调试界面介绍

3.1逐过程

逐行执行,不进入方法内部

快捷键:Step Over(F8)

3.2逐语句

进入方法内部执行

快捷键:Step Into(F7)

3.3强制步入功能

Force Step Into 是⼀种强制步入功能,它允许调试器进入任何方法,包括那些通常会被StepInto功能跳过的方法。

与普通Step Into(F7)的区别:

(1)普通Step Into(F7)通常会跳过库方法、无源代码的方法等。

(2)ForceStepInto会进入任何方法,包括那些通常被跳过的方法。

快捷键:Alt+Shift+F7

3.4跳出功能

跳出当前方法,它让程序执行完当前方法的剩余部分,然后返回到调用该方法的位置。快速完成当前方法的执行。

快捷键:StepOut(Shift+F8)

假设进入了⼀个方法,此时需要跳出,不执行后续方法。

3.5运行到光标所在位置

快捷键:alt+F9

3.6重新调试

快捷键:ctr+F5

3.7跳到下⼀个断点

从当前断点处,直接跳转到下⼀个断点处

3.8暂停调试

快捷键:ctr+F2

3.9显示所有断点

是⼀个集中管理所有断点的界面,可以查看、编辑、启用/禁用或删除断点

快捷键:通常是Ctrl+Shift+F8

3.10屏蔽断点

临时禁用所有断点的功能,而不需要逐个禁用或删除它们

四、其他

1、Debugger标签下会展示调用堆栈以及变量等表达式的值

此时add:11 main:5属于调用堆栈信息,先调用main方法,后调用add方法

标有"Evaluateexpression(Enter) or addawatch",这⾥可以输入表达式进行求值或添加到监视列表,如:

可以输出表达式,按下回车计算结果

2、Console标签下会展示控制台的输入输出信息

只要遇到输出语句,此时就可以查看输出的结果

3、条件断点

当⼀个代码需要满足某种条件进行调试,此时可以使用调试断点

(1)打断点

(2)鼠标右键,添加条件即可

(3)开始调试程序会停在满足条件的情况下