33

在 Visual Studio 中,调试时,可以将执行点(当前指令指针,黄点)拖到当前方法中的另一个位置。

这在 IntelliJ 中是不可能的,有些人说这在 Java 中通常是不可能的。为什么?

4

4 回答 4

15

IntelliJ 通过标准的 Java 调试接口与正在运行的 JVM 交互,因此它可以针对不同的 JDK 调试程序。这不支持您描述的移动执行点。

它确实可以让您回退调用堆栈并再次执行方法调用。在 IntelliJ 中,使用线程窗口选择挂起线程的堆栈帧并返回到它。然后继续线程以在程序中重新调用该点的方法。

注意:这不会回滚对象的状态,因此可能会出现奇怪的效果。

于 2009-06-21T07:46:55.210 回答
2

在 Eclipse 中,如果您编辑正在调试的方法导致被调试的代码被更新,JVM 会将执行回滚到第一个安全位置。通常这是该方法的第一行。

这在调试场景中非常有用。

于 2009-06-21T09:31:13.127 回答
-2

您可以告诉调试器向前“运行到行”。

于 2009-06-21T09:14:32.583 回答
-8

Java 没有可以指向随机代码段的当前执行指针。Java 假定执行顺序在代码中,而不是您可以操纵的东西。

也许您可以解释为什么要这样做,我们可以让您知道实现相同目标的另一种方法。

于 2009-06-21T08:35:31.493 回答