调试您的第一个Java应用程序
调试您的第一个Java应用程序
开始之前
您已经创建并执行了第一个Java应用程序。现在是时候调试它了。
但是,在应用程序中再添加一行是很好的,如下所示:
System.out.println("it's me, Wombat!");
放置断点
要启动调试器会话,首先需要在要暂停应用程序执行的语句中放置断点。现有的源代码并没有为您提供多少选择 - 唯一可以放置断点的地方是在下列语句中:
System.out.println("Hello World!"); System.out.println("it's me, Wombat!");
所以我们这样做吧。单击要放置断点的语句行左侧的装订线,或者只需按Ctrl+F8:
如您所见,新断点将添加到源代码中。设置断点的行将其颜色更改为粉红色。
如果只是将鼠标指针悬停在断点上,您将在工具提示中看到它的属性:
假设您要更改此断点的某些属性。然后右键单击它并看到以下对话框:
最后,您希望浏览并更改断点的所有可用属性,并查看其在其他断点(如果有)中的位置。在这种情况下,请按Ctrl+Shift+F8:
启动调试器会话
现在添加了断点,您可以调试应用程序。这可以通过多种方式完成;但是,让我们按照最简单的方式。
注意使用该main()方法标记类的图标 。单击此图标会显示一个菜单,可以运行和调试这样的类:
这是什么意思?
IntelliJ IDEA使用临时运行/调试配置启动了调试器会话 。此运行/调试配置具有默认名称“HelloWorld.main()”。要查看和更改此运行/调试配置的设置,请在主菜单上选择:运行|编辑配置... (Run | Edit Configurations... ):
或单击运行/调试配置选择器,然后选择:编辑配置...(Edit Configurations...):
IntelliJ IDEA编译您的应用程序(这需要时间!),然后在第一个断点处挂起应用程序。
IntelliJ IDEA窗口现在看起来不同了:
- 第一个改变的是带断点的第一行的颜色。现在该行呈现蓝色:
这意味着(根据断点属性)应用程序已到达此断点,在println语句之前命中它并暂停。 - 接下来,在IntelliJ IDEA窗口的下半部分,出现了一个特殊的工具窗口。这是调试(Debug)工具窗口,其中包含分步(stepping)工具栏,并显示调试器会话期间可能需要的所有必要信息:
逐步执行应用程序
直接逐步完成语句
让我们逐步完成应用程序。单击分步(stepping)工具栏上的
,或者按:F8。
下一行现在变成蓝色。如果查看“调试(Debug)”工具窗口,您会注意到以下更改:
- 在“框架(Frames)”窗格中,将显示下一个行号。
- “控制台(Console)”选项卡标有图标 ,表示它包含新输出。
单击控制台(Console)选项卡。您会看到第一行的消息,其中包含断点“Hello,World!”。第二条消息尚未显示:
再次单击步进工具栏上的 图标,或按:F8。现在第二条消息出现在控制台中。下次单击 后,应用程序停止:
此调试会话结束。
逐句调用方法调用
现在让我们探索一种更复杂的方式,并进入println()调用。
首先,重新启动调试器会话。为此,只需单击“调试(Debug)”工具窗口的工具栏上的 即可 。因此,您将重新运行最新的运行/调试配置,即:HelloWorld。
应用程序再次在第一个断点处暂停。这一次,单击 或按Shift+Alt+F7。你看到了不同的画面:
这意味着IntelliJ IDEA已经进入了PrintStream.java库类的println(String x)方法。请注意,线程列表中会出现一个新线程。
单击 或按Shift+F8,以返回下一个断点:
请注意,控制台选项卡再次获得标记 ,这意味着新输出可用。接下来,单击 。您看到该进程终止: