You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java/Kotlin调试:如何查看行内无名中间变量的值?

如何在不修改源代码的前提下查看嵌套调用中b()的返回值?

假设我们有如下Java/Kotlin代码:

return a(b())

想要在调试器中查看b()的返回值,但不想通过「提取变量」重构(如下代码)的方式修改源代码——毕竟这种改动会污染变更日志,还可能不小心提交:

var c = b()
// 在下行设置断点,即可在调试器中查看变量c
return a(c)

可以用以下几种无需修改源码的方案实现:

  • 设置方法退出断点:在b()方法的定义处设置断点,然后在断点的配置里勾选「方法退出」(不同IDE的叫法略有差异,比如IntelliJ IDEA里是「Method Exit」)。当b()执行完成准备返回时,程序会暂停,此时直接在调试器的变量面板里就能看到它的返回值。
  • 使用调试器的表达式求值功能:在return a(b())这一行设置普通断点,当程序暂停后,在调试器的表达式控制台里手动执行b(),就能获取它的返回值。注意:如果b()是有副作用的方法(比如修改全局状态、发起网络请求),这种方式可能会改变程序的运行状态,需要谨慎使用。
  • 查看调用栈帧的临时值:部分IDE在执行到a(b())时,当b()执行完毕,会在调用栈的栈帧信息里保留b()的返回值,你可以在调试器的栈帧详情或临时变量区域找到这个值。

内容的提问来源于stack exchange,提问作者Oleg Vazhnev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:02:05