调试 debug
调试器使应用程序调试更容易。 使用调试器,我们可以在某一点停止程序的执行,检查变量,进入函数并做很多事情。 IntelliJ提供内置的Java调试器。
断点(Breakpoints)
断点允许在某个点停止程序执行。 可以通过将鼠标悬停在编辑器的装订线区域上并单击它来设置断点。
断点用红色圆圈符号表示。 考虑第3行设置的断点。
请考虑以下步骤以了解有关断点如何工作的更多信息 -
右键单击红色圆圈符号。
选择More选项。
要删除断点,只需单击相同的符号。
按照以下步骤启动调试器 -
- 导航到“运行”菜单。
- 选择“调试”选项。
踏入
在调试时,如果遇到函数并且选择了步骤操作,则调试器将在该函数的每个点停止程序执行,就好像为该函数启用了调试一样。
例如,当程序执行到达第9行时,如果我们选择步骤进入操作,那么它将停止执行sayGoodBye()函数中的每一行。
走出去
Step out动作与Step in action完全相反。 例如,如果使用上述方案执行步出操作,则调试器将从sayGoodBye()方法返回并在第10行开始执行。
过来
Step over动作不会进入函数,而是跳转到下一行代码。 例如,如果您在第9行并执行步骤操作,那么它会将执行移至第10行。
简历程序
“恢复程序”操作将通过忽略所有断点继续执行程序。
停止行动
Stop操作有助于停止调试器。
聪明的步入
在调试时,我们有时可能会调用一行调用多个方法的代码。 在调试这些代码行时,调试器通常允许我们使用step into并引导我们完成所有子函数,然后返回到父函数。 但是,如果我们只想进入一个子功能呢? 通过Smart step-into,它允许我们选择要进入的功能。
现在,让我们使用以下代码行创建一个Java类 -
public class HelloWorld {
public static void main(String[] args) {
allFunctions();
}
static void allFunctions() {
System.out.println(function1() + " " + function2() + " " + function3());
}
static String function1() {
return "function1";
}
static String function2() {
return "function2";
}
static String function3() {
return "function3";
}
}
在上面的代码中, allFunctions()调用了3个函数。 让我们在这个函数下设置断点。 按照以下步骤执行智能步骤 -
- Go to run
- Select smart step into.
- 选择要运行的子功能。
检查变量
在调试期间,IntelliJ在Editor窗口本身中显示变量的值。 我们还可以在Debug窗口中查看相同的信息。
评估表达
评估表达式允许动态评估表达式。 请按照以下步骤执行此操作 -
在调试器中启动应用程序
导航到Run-》Evaluate表达式。
输入表达式。 在下面给出的例子中,变量'i'的当前值是0; 因此,表达式“i> 100”将评估为假