📜  Intellij Idea-调试

📅  最后修改于: 2020-11-16 07:11:34             🧑  作者: Mango


调试器使应用程序调试更加容易。使用调试器,我们可以在某个点停止程序的执行,检查变量,进入函数并做很多事情。 IntelliJ提供内置的Java调试器。

断点

断点允许在特定点停止程序执行。可以通过将鼠标悬停在编辑器的装订线区域上并单击来设置断点。

断点用红色圆圈符号表示。考虑在第3行设置的断点。

断点

考虑以下步骤,以了解有关断点如何工作的更多信息-

  • 右键单击红色圆圈符号。

  • 选择更多选项。

  • 要删除断点,只需单击相同的符号。

请按照以下步骤启动调试器-

  • 导航到“运行”菜单。
  • 选择调试选项。

步入

在调试时,如果遇到一个函数和一个步骤到动作被选择,则调试程序将在该函数中的每个点,如同调试该函数使能停止程序的执行。

例如,当程序执行到达第9行时,如果我们选择要执行的步骤,则它将在sayGoodBye()函数的每一行停止执行。

程序执行

走出去

逐步执行操作与逐步执行相反。例如,如果您在上述情况下执行“跳出”操作,则调试器将从sayGoodBye()方法返回,并从第10行开始执行。

走出去

越过

相反,“跳过”操作不会进入函数,它将跳至下一行代码。例如,如果您在第9行并执行跨步操作,则它将执行移至第10行。

越过

恢复程序

“继续程序”操作将通过忽略所有断点来继续执行程序。

断点

停止行动

停止操作有助于停止调试器。

停止行动

明智地进入

在调试时,有时我们可能会到达一行调用多个方法的代码。在调试这些代码行时,调试器通常允许我们使用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个函数。让我们在此函数处设置断点。请按照以下步骤执行智能步骤-

  • 去跑步
  • 选择智能步入。
  • 选择要使用的子函数。

子功能

检查变量

在调试期间,IntelliJ在“编辑器”窗口本身中显示变量的值。我们还可以在“调试”窗口中查看相同的信息。

检查变量

评估表达

评估表达允许即时评估表达。请按照以下步骤执行此操作-

  • 在调试器中启动应用程序

  • 导航到运行->评估表达式。

  • 输入表达式。在下面给出的示例中,变量“ i”的当前值为0;因此,表达式“ i> 100”的计算结果为false

评估表达