为什么我不能在IntelliJ中拖动执行点(我可以在Visual Studio中)

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

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


答案 1

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

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

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


答案 2

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

这在调试方案中非常有用。