CLion教程-单步调试
CLion提供了一组用于不同调试策略的步进操作,例如,您需要直接进入下一行还是在前进的过程中进入调用的函数。
为了在执行步进操作时避免在编辑器中产生许多选项卡,可以启用预览选项卡。它允许您在单个选项卡中逐个查看文件,而无需在新选项卡中打开每个文件。
步进操作位于调试器窗口工具栏上和菜单中:
逐过
逐过当前行并将您带到下一行,即使当前行包括函数调用。函数调用将被跳过,您将直接移到调用者的下一行。
- 单击“逐过”按钮 或按F8。
如果在跳过的方法内有断点,调试器将停在那里。要跳过路径上的任何断点,请使用强制逐过。
逐入
进入所调用函数的代码内部。
- 单击“逐入”按钮 或按F7。
某些方法会被Step Into跳过,因为通常您可能不需要调试它们。此列表可以在“设置”对话框的“Build, Execution, Deployment | Debugger | Stepping”页面上进行微调(CtrlAlt+S)。
智能逐入
当一行上有多个方法调用时,智能逐入非常有用,您希望明确要进入哪个方法。此功能允许您选择感兴趣的方法调用。
此功能不适用于C/C++调试。但是,您可以在其他语言(如JavaScript和Python)中使用它。
- 从菜单中选择“智能逐入”或按ShiftF7。
- 单击方法。您还可以使用箭头键或选项卡选择它,然后按Enter/F7。
您可以配置智能逐入,以便在一行上有多个方法调用时始终使用它,而不是常规的Step Into。这是在“设置 | Build, Execution, Deployment | Debugger | Stepping”中完成的。
逐出
退出当前函数并将您带到调用者的代码。
- 单击“逐出”按钮 或按ShiftF8。
运行到光标
继续执行,直到光标的位置被达到。
- 将光标放在您希望程序暂停的行上。
- 从菜单中选择“运行到光标”或按AltF9。
在经典UI中,您还可以通过在装订线中单击行号来运行到光标。
您可以配置是否要在单击行号时启用“运行到光标”在“设置 | Build, Execution, Deployment | Debugger”中。
要跳过路径上的任何断点,请使用强制运行到光标。
强制逐入
即使默认情况下被常规Step Into跳过,也会进入函数。
- 从菜单中选择“强制逐入”或按AltShiftF7。
如果您要进入的函数的源代码不可用,您可以在专用视图中调试反汇编代码。
强制运行到光标
继续执行,直到光标的位置被达到。路径上的所有断点都将被忽略。
- 将光标放在您希望程序暂停的行上。
- 从菜单中选择“强制运行到光标”或按CtrlAltF9。
强制逐过
逐过当前行的代码并将您带到下一行,即使突出显示的行中包含方法调用。如果在所调用的方法中有断点,则它们将被忽略。
- 从菜单中选择“强制逐过”或按AltShiftF8。
可逆调试
尽管CLion默认不支持可逆调试,但您可以在Linux上使用Undo插件来设置它。
该插件集成了Undo的记录、倒带和重放技术到CLion中。使用Undo,您可以记录程序的执行,直到单个指令,以供进一步重放和分析。这样,调试器就变成了可逆的:您可以在代码中前进和后退,看到发生了什么。