1.设置断点

  • 断点是 Debug 的核心工具,用于暂停程序执行,以便检查变量、调用栈等信息。在代码行号左侧的空白区域点击,设置断点。红点表示已设置断点。你可以设置条件断点,右键点击断点,选择“编辑断点”,然后在“条件”框中输入调试条件(如变量值)。断点一般分为:行断点、方法断点、异常断点、字段断点。

2.启动 Debug 模式

  • 点击IDEA工具栏上的Debug按钮(通常是一个绿色的虫子图标)。
  • 你也可以按 Shift + F9 来启动调试模式,程序会在断点处暂停执行。

3.Debug操作

  • 启动 Debug 模式后,IDEA 会显示 Debug 工具栏,包含以下常用功能:
图标/快捷键功能说明
Step Over (F8)执行当前行代码,不进入方法内部
Step Into (F7)进入当前行调用的方法内部。
Step Out (Shift+F8)从当前方法跳出,回到调用该方法的地方。
Run to Cursor (Alt+F9)运行到光标所在行
Resume Program (F9)继续运行程序,直到下一个断点或程序结束
Stop (Ctrl+F2)停止 Debug 会话。

4.查看变量和表达式

  • Variables 窗口:显示当前作用域内的变量及其值。
  • Watches 窗口:可以手动添加需要监控的变量或表达式。
  • 快速查看:将鼠标悬停在变量上,会显示当前值。
  • Call Stack 窗口:查看当前线程的调用堆栈,了解代码执行路径。
  • Console 窗口:显示程序的标准输出或错误信息。

5.条件断点和日志断点(我没怎么用过)

  • 条件断点:右键点击断点,选择 "More" 或 "Condition",设置条件表达式。
  • 日志断点:右键点击断点,选择 "Log message to console",可以在不暂停程序的情况下打印日志。

6.多线程调试(我没怎么用过)

  • Threads 窗口:显示所有线程的状态。
  • 切换线程:在 Threads 窗口中选择不同的线程,查看其调用栈和变量。

7.修改代码并继续调试

  • 在调试过程中,IDEA 支持“热代码替换”,也就是说你可以在程序运行时修改代码并立即应用。修改完成后,点击 Reload Changed Classes,IDEA 会重新加载修改后的类。

8.日志调试(我没怎么用过,直接去看日志了)

  • 如果不希望程序中断,但又想记录一些调试信息,可以设置日志断点。在 Edit Breakpoint 对话框中,勾选 Log message to console,输入你想打印的消息,这样在断点被触发时,消息会被打印出来。

9.远程调试

  • 如果需要调试远程服务器上的应用,可以配置远程 Debug:
    1. 打开 "Run/Debug Configurations"。
    2. 点击 "+",选择 "Remote JVM Debug"。
    3. 配置主机地址(Host)和端口(Port)。
    4. 在服务器启动时添加 JVM 参数,例如:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    5. 然后在 IDEA 中配置远程调试,选择 Run -> Edit Configurations,然后选择 Remote,填写远程主机地址和端口即可连接远程进程进行调试。

10.总结

  • IDEA 提供了非常强大的调试工具,支持从基本的单步调试到远程调试和条件断点,帮助开发者高效定位和解决代码中的问题。掌握这些调试功能,你可以更轻松地理解程序的执行流程,快速找出 bug。在使用Debug功能时,要确保已经正确设置了断点,并选择了正确的调试配置。在Debug过程中,可以灵活使用各种调试按钮和功能来追踪程序的执行流程并定位问题。修改变量值时要注意变量的作用域和类型,以避免引入新的错误。熟练掌握Debug功能可以显著提高编程效率和代码质量。