10.1 启动调试器
我们会基于IntelliJ IDEA进行调试学习,相当合逻辑还很有趣。你马上就能看到。
在IntelliJ IDEA(需要Ultimate Edition版本)中,你可以用两种模式启动你的程序:
| 程序启动模式 | 面板图标 | 快捷键 |
|---|---|---|
| 普通执行 | ![]() |
Shift+F10 |
| 调试模式启动 | ![]() |
Shift+F9 |
普通模式你已经很熟了:程序启动,运行,结束。调试模式可就有不少惊喜给你了。
调试模式
调试模式让你可以一步一步地执行整个程序。更准确的说,逐行执行:一行一行来。 这样你可以在程序的每一步(每执行完一行代码后)观察变量的值。甚至可以修改它们的值!
要基本掌握程序调试的艺术,你需要了解三件事:
- 断点
- 逐步执行
- 查看变量值
10.2 断点(Break Points)
IDE允许你在代码中放置特殊标记—断点(break point)。每次当以调试模式启动的程序运行到用break point 标记的行时,它会暂停。
要在特定行设置break point,只需在IntelliJ IDEA中点击该行左侧。示例:
结果是这行会被标记为断点(break point),IntelliJ IDEA会将整行用红色高亮:
再次点击代码左侧的面板即可移除已设置的break point。
同样的,break point可以通过快捷键Ctrl+F8放在当前行。 在已有break point的行上再次按下Ctrl+F8即可删除它。
10.3 以调试模式启动程序
如果你的程序中至少有一个断点,你可以以调试模式启动程序(Shift+F9或“虫子图标”)。
调试模式启动后,程序正常执行。但一旦它运行到用break point标记的代码行时,会暂停。示例:
在截图的上半部分可以看到有两个断点的程序代码。程序停在 第2行 — 用蓝线标记。第2行还未执行:控制台还没有输出任何东西。
在屏幕的下半部分可以看到调试模式的面板:Thread & variables面板、控制台面板(屏幕输出),以及调试模式的按钮集。
你可以点击左下方面板中的Resume Program按钮(或按下F9)解除程序的暂停状态(继续执行)。
如果按下这个按钮(或F9),程序会继续运行,直到遇到下一个断点或结束。按下按钮后我们会看到:
程序停在第二个断点,控制台输出了Hello和and —— 表明屏幕输出的三行中只有两行执行了。
10.4 逐步执行
如果你的程序在调试模式下运行,你也可以逐步执行它:一步一步来,一行一行地执行。 逐步执行有两个快捷键:F7和F8 — 每个都能执行当前行的代码。 但是你首先需要通过断点暂停程序。
如果你想逐行执行程序,需要从最开始就设置断点 —— 在第一行代码上然后以调试模式启动它。
当程序暂停后,你可以开始逐行执行。按下F8 — 执行一行。
这是我们的程序在暂停并按下一次F8后的样子:
第一行 — print(“Hello”)已经执行了,当前行是第二行。你也可以在截图底部看到,Hello已输出到屏幕。
10.5 逐步执行进入函数
如果你的程序中有自定义函数,并且你希望在调试模式下不只是逐步执行,还要进入你的函数, 那么“进入函数”就得按F7,而不是F8。
假设你逐步执行程序并停在第5行。如果你按下F8,Intellij IDEA会直接执行第五行并跳到第六行:
但如果你按F7,Intellij IDEA会逐步执行hello()函数:
这很简单。如果你不太关心方法内部的执行,按F8。如果你在意,就按F7逐步执行整个代码。


GO TO FULL VERSION