Intellij Idea - 调试
调试器使应用程序调试变得更加容易。使用调试器,我们可以在某个点停止程序的执行,检查变量,进入函数并执行许多操作。IntelliJ 提供内置 Java 调试器。
断点
断点允许在某个点停止程序的执行。可以通过将鼠标悬停在编辑器的边距区域上并单击来设置断点。
断点用红色圆圈符号表示。考虑在第 3 行设置的断点。
考虑以下步骤以进一步了解断点的工作原理 −
右键单击红色圆圈符号。
选择 更多 选项。
要删除断点,只需单击相同的符号即可。
按照以下步骤启动调试器 −
- 导航到运行菜单。
- 选择调试选项。
单步执行
调试时,如果遇到某个函数并选择了单步执行操作,则调试器将在该函数的每个点停止程序执行,就像为该函数启用了调试一样。
例如,当程序执行到第 9 行时,如果我们选择 step into action,那么它会在 sayGoodBye() 函数中的每一行停止执行。
Step out
Step out 操作与 Step in 操作完全相反。例如,如果您在上述场景中执行 step out 操作,则调试器将从 sayGoodBye() 方法返回并从第 10 行开始执行。
Step over
Step over 操作不会进入函数,而是跳转到下一行代码。例如,如果您在第 9 行并执行 step over 操作,那么它将把执行移至第 10 行。
恢复程序
恢复程序操作将忽略所有断点,继续执行程序。
停止操作
停止操作有助于停止调试器。
智能步入
调试时,我们有时可能会到达调用多个方法的代码行。在调试这些代码行时,调试器通常允许我们使用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 个函数。让我们在这个函数上设置断点。按照以下步骤执行智能步进 −
- 转到运行
- 选择智能步进。
- 选择要转到的子函数。
检查变量
在调试期间,IntelliJ 会在编辑器窗口本身中显示变量的值。我们还可以在调试窗口中查看相同的信息。
评估表达式
评估表达式允许动态评估表达式。按照以下步骤执行此操作 −
在调试器中启动应用程序
导航到 运行->评估 表达式。
输入表达式。在下面给出的示例中,变量"i"的当前值为 0; 因此,表达式"i > 100"将计算为 false