首先,我们要明白,在工作中,我们并不是大多数的时间都在敲代码。就像是说把被子叠成豆腐块一样,讲究“三分叠,七分修”,对于我们程序员而言,敲代码只是一小部分,更多的时间要用来调试。
当我们发现程序中存在的问题的时候,我们去查找和改正错误的过程称为调试(debugging)
调试的⼀般途径是采用各种方法逐步缩小bug所在的范围,最终定位bug的准确位置。
(1)适用于代码量短小
(2)常见的方式是逐行阅读代码和插入⼀些打印语句观察代码的问题
(1)适用于复杂程序
(2)使用集成开发工具中集成的调试器
把鼠标放在行号左侧这里,点击鼠标左键,出现红色按钮

鼠标右键,点击Debug...


逐行执行,不进入方法内部
快捷键:Step Over(F8)

进入方法内部执行
快捷键:Step Into(F7)



Force Step Into 是⼀种强制步入功能,它允许调试器进入任何方法,包括那些通常会被StepInto功能跳过的方法。
与普通Step Into(F7)的区别:
(1)普通Step Into(F7)通常会跳过库方法、无源代码的方法等。
(2)ForceStepInto会进入任何方法,包括那些通常被跳过的方法。
快捷键:Alt+Shift+F7

跳出当前方法,它让程序执行完当前方法的剩余部分,然后返回到调用该方法的位置。快速完成当前方法的执行。
快捷键:StepOut(Shift+F8)

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



快捷键:alt+F9



快捷键:ctr+F5

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



快捷键:ctr+F2

是⼀个集中管理所有断点的界面,可以查看、编辑、启用/禁用或删除断点
快捷键:通常是Ctrl+Shift+F8


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



此时add:11 main:5属于调用堆栈信息,先调用main方法,后调用add方法
标有"Evaluateexpression(Enter) or addawatch",这⾥可以输入表达式进行求值或添加到监视列表,如:

可以输出表达式,按下回车计算结果
只要遇到输出语句,此时就可以查看输出的结果

当⼀个代码需要满足某种条件进行调试,此时可以使用调试断点
(1)打断点
(2)鼠标右键,添加条件即可

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