Eclipse“设置下一个声明”

时间:2012-01-13 19:54:01

标签: java eclipse debugging

有没有办法在Eclipse for Java中跳转到一行代码? 重新运行函数进行调试会很有用。 像Visual Studio的“Set Next Statement”或可拖动的黄色箭头?

Yellow arrow in Visual Studio

5 个答案:

答案 0 :(得分:14)

在调试器中选择堆栈中的位置时,右键单击,然后选择“Drop to Frame”。这将解除调用堆栈。您可以在当前方法(调用堆栈顶部)上执行此操作以展开到方法的顶部。由于各种原因,这种方法并不常用,但你可以经常这样做。

答案 1 :(得分:5)

JVM Tools Interface中,甚至在概念上也不存在此功能,更不用说IDE倾向于与之接口的Java Debug Wire Protocol。在IDE中实现它需要创建(并保留)Hotspot / JRockit / etc本身的自定义构建。

答案 2 :(得分:2)

我也没有找到它,也不认为它是受支持的。它在Visual Studio(用于C ++开发)中的可用性真的让我感到厌烦。它有时很有用。

答案 3 :(得分:0)

我没有意识到在Eclipse中这样做的任何方法 - 所有明显的检查都没有发现。我怀疑java的工作方式存在问题,因为它在Visual Studio中可用了很长时间,并且Eclipse没有匹配它意味着它不一定是繁重的任务而是史诗般的任务。

答案 4 :(得分:0)

我发现了一种无需返回前一帧即可重新运行方法的相当愚蠢的方法。

例如您在此功能中:

'public int compareTo(EVAL evalOther) {
    int jRet = compareId(this.id, evalOther.id);
    if (jRet == 0) {
      jRet = compareXYZ(this.XYZ, evalOther.XYZ);
    }
return jRet;
}'

让我们说,在执行第一行之后,即 int jRet = compareId(this.id, evalOther.id);

我想重新运行这一行,我只是对它做一个小改动,这将强制快速重新编译相同的方法。于是又从方法的第一行开始。

例如我换线

'int jRet = compareEVALClass(this, evalOther);'

'int jRet = 0 + compareEVALClass(this, evalOther);'

按 Ctrl-S(或任何您保存文件的快捷键)

然后函数重新编译,会再次从第一行重新开始。

同意,这不如 Visual Studio 的“设置下一个语句”