【问题标题】:get method result in Java debugger在 Java 调试器中获取方法结果
【发布时间】:2014-08-19 18:45:11
【问题描述】:

假设我需要调试一些提供调试信息的 Java 编译代码。所以我无法更改此代码。例如我有

SomeClass object;
object.doAction1().doAnotherAction().doAnythingElse();

所以我想检查一个 doAction() 返回的对象及其字段。我知道在大多数 IDE 中都有一个 evaluateValue 操作,但我不需要调用方法两次,因为它可能会做出无法撤消的更改。我不在乎使用哪个 IDE(Eclipse、Idea、Netbeans...),甚至是纯 jdb。可能存在适合许多语言调试器的适当表达式,而不仅仅是 Java。

【问题讨论】:

  • Netbeans 有这样一个特性,“跨过表达式”,它允许跨过显示每个结果的方法调用。我不知道有类似的 Eclipse 功能,但我没有使用最新版本。
  • 是的,这就是我一直在寻找的。抱歉耽搁了。不幸的是idea缺少这个功能。

标签: java debugging ide


【解决方案1】:

我不知道这些信息是否有用,但是如果你使用的是 Eclipse IDE,你可以选择你想要结果的表达式,然后按“ctrl + shift + i”,它会得到那个表达式的结果。

【讨论】:

  • 阅读最后一段的第二句。 OP 专门考虑并拒绝了这种方法。
  • 它调用方法。尝试创建您自己的方法并在那里放置类似 System.out.println('lol') 然后按 ctrl+shift+i 并检查控制台。这是评估值。
【解决方案2】:

它在 Eclipse 中称为“表达式”。如果您转到“调试”透视图,您可能会看到它。

如果您无法进入调试视角

  1. 单击窗口 > 打开透视图 > 调试。
  2. 如果您没有看到调试,请单击其他并搜索“调试”。

打开表达式选项卡

  1. 如果在调试模式下看不到它,请转到“窗口”>“显示视图”>“表达式”。
  2. 如果在显示视图中看不到表达式,请单击“其他”而不是“表达式”。
  3. 在表达式中,单击“添加新表达式”,然后将要计算的代码粘贴到其中。

【讨论】:

  • OP 特别声明多次计算表达式是不可行的,因为它可能有副作用。
  • 它调用方法。尝试创建自己的方法,并在其中放置类似 System.out.println('lol') 的内容,然后将其添加到 Expressions。这与我的意思是 Idea 中的 evaluateValue 相同。
猜你喜欢
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 2012-02-05
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
相关资源
最近更新 更多