有没有办法在Eclipse for Java中跳转到一行代码? 重新运行函数进行调试会很有用。 像Visual Studio的“Set Next Statement”或可拖动的黄色箭头?
答案 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 的“设置下一个语句”