如何使用Eclipse Debugger无断点查看变量全生命周期变化
结论
可以实现,Eclipse 自带的非暂停日志断点功能完全匹配你的需求,无需修改业务代码、不会中断程序运行,可完整记录目标变量全生命周期的变化情况。
标准操作步骤
方式1:无需写代码的简易日志输出(推荐新手使用)
- 找到目标变量会被创建/修改/访问的代码行,点击左侧行号区域打一个普通断点(出现蓝色圆点标记即可)
- 右键点击该断点,选择
Breakpoint Properties(断点属性) - 取消勾选
Suspend(暂停)选项,确保程序运行到该位置不会被中断 - 勾选
Log message to console(将消息记录到控制台),在输入框中按格式填写要输出的内容,变量名用大括号包裹即可,示例:
其中第{line}行:目标变量userInfo的值为 {userInfo},当前执行线程为 {thread.name}{line}、{thread.name}是Eclipse内置的调试变量,可直接使用,自定义变量直接填变量名即可。 - 点击
OK保存配置,正常以Debug模式启动程序即可,所有变量变化会自动输出到Debug控制台。
方式2:自定义格式化输出(适合需要复杂处理的场景)
- 前两步和方式1一致:打普通断点、进入断点属性、取消勾选
Suspend - 勾选
Conditional(条件)选项,在下方输入框中编写自定义输出逻辑,最后固定加return false;即可,示例:// 自定义格式化输出,支持任意Java语法 System.out.printf("[%tF %<tT] 变量order的状态更新为:%s,订单ID:%d%n", System.currentTimeMillis(), order.getStatus(), order.getId()); // 必须返回false,避免触发断点暂停 return false; - 保存配置后以Debug模式启动程序即可。
注意事项
- 若观测的是成员变量/全局变量,需要在所有会修改该变量的代码行都配置对应非暂停断点,才能拿到完整的生命周期变化记录;局部变量仅需在其作用域内的修改行配置即可。
- 所有日志默认输出到Eclipse的
Debug Console视图,程序运行结束后可直接导出完整记录,无需额外处理。 - 该配置仅属于本地调试规则,不会修改源代码,调试结束后批量删除所有断点即可,不会对代码产生任何影响。
内容的提问来源于stack exchange,提问作者Wilfredo
相关产品推荐
相关产品推荐

