java如何debug操作
Java Debug操作指南
使用IDE内置调试器(以IntelliJ IDEA为例)
启动调试模式:在代码行号左侧点击添加断点,右键选择Debug 'YourClass'或使用快捷键Shift+F9。程序执行到断点时会暂停,进入调试界面。
查看变量值:在调试窗口的Variables面板中,可查看当前作用域内的变量值。悬浮鼠标到代码中的变量上也会显示实时值。
控制执行流程:使用调试工具栏的Step Over(F8)、Step Into(F7)、Step Out(Shift+F8)控制代码逐步执行。
使用JDB命令行工具
启动JDB调试:编译时加入-g参数生成调试信息,然后通过命令jdb -attach <port>或jdb -launch YourClass启动。
基础命令:
stop at <class>:<line>设置断点run开始执行locals查看局部变量print <expression>打印表达式值
远程调试配置
添加JVM参数:启动Java应用时添加-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005。
IDE连接:在IDE中创建Remote JVM Debug配置,填写对应主机和端口(如5005),启动连接后即可远程调试。
日志调试技巧
使用SLF4J+Logback:在关键位置添加日志输出,通过不同级别(DEBUG/INFO)控制信息粒度。
private static final Logger logger = LoggerFactory.getLogger(YourClass.class);
logger.debug("Variable x value: {}", x);
异常分析策略
阅读完整堆栈:重点关注Caused by部分和第一个自定义类出现的行号。
使用异常断点:在IDE中配置Exception Breakpoints,当特定异常抛出时自动暂停。
内存问题调试
堆转储分析:通过jmap -dump:format=b,file=heap.hprof <pid>生成堆转储,用MAT工具分析内存泄漏。
JConsole监控:实时查看堆内存、线程、GC情况,识别异常增长对象。
多线程调试技巧
线程快照分析:使用jstack <pid>获取线程状态,查找死锁或阻塞线程。

条件断点:在IDE中为断点设置线程过滤条件或触发条件,避免无关线程触发中断。






