调试时更改java程序的执行

时间:2014-04-18 14:42:58

标签: java eclipse

在Visual Studio中,在调试时,您可以通过堆栈返回来更改程序的执行流程。我的意思是,在您传递了一些表达式并且调试器突出显示下一行之后,您可以返回并再次执行该表达式。

调试Java程序时是否可以这样做?

3 个答案:

答案 0 :(得分:0)

在评估调试器中的该部分后更改方法时,会出现提示:

  

堆栈上的过时方法

     

原因:虚拟机无法删除所有堆栈帧   从调用堆栈中运行旧代码。虚拟机不是   为调试器提供这些帧的有效数据。踏入   这些过时的框架可能对目标虚拟机有害。

然后有三个按钮:继续,终止和重启。

如果按“重新启动”,代码将重新评估并返回到新的断点(如果设置了一个断点)或之前的位置。我不相信eclipse调试器中有“后退”。

答案 1 :(得分:0)

是的,您可以使用Drop To frame

它位于主工具栏上,位于其他调试命令的左侧。

答案 2 :(得分:0)

我知道只有一种方法可以引导你达到这种效果。它需要修改源代码,例如:

public static void main(String[] args) {
    int a = 1;
    int b = 1;
    int c = 1; //<-- break point here
    int d = 1;
}

设置断点,而调试器在该行停止,将此main方法的源代码更改为其他任何内容,例如:

public static void main(String[] args) {
    int a = 1;
    int b = 1;
    int c = 1; //<-- break point here
    int d = 1;
    int e = 1; //<-- any modification will do
}

现在,当按下“next”时,您可以选择让调试器重新启动。

除了这种解决方法之外,我认为你不能在Eclipse中做到这一点。