在Visual Studio中,在调试时,您可以通过堆栈返回来更改程序的执行流程。我的意思是,在您传递了一些表达式并且调试器突出显示下一行之后,您可以返回并再次执行该表达式。
调试Java程序时是否可以这样做?
答案 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中做到这一点。