我正在使用Eclipse IDE(Helios版本) 在Eclipse中进行调试时,是否可以编辑源代码并继续调试?
例如我有这个文件 在调试时我试图在调试期间修改a4值而不反映??
public class Tes {
public static void main(String args[]) {
int a4 = 15;
for (int i = 0; i < a4; i++) {
System.out.println(i);
}
}
}
答案 0 :(得分:9)
是的,可以在Eclipse中编辑源代码并继续调试!您可以在此处找到大量信息:Debugging with the Eclipse Platform(向下滚动到 Hotswap Bug修复:动态代码修复部分。)
如果您正在运行Java虚拟机(JVM)V1.4或更高版本,那么Eclipse 支持名为Hotswap Bug Fixing的功能(在JVM中不可用) V1.3或更低)。它允许在a期间更改源代码 调试器会话,这比退出应用程序更好, 更改代码,重新编译,然后开始另一个调试 会话。要使用此功能,只需更改编辑器中的代码即可 并恢复调试。
在某些情况下,该功能无法使用。例如。如果对main
方法的a4
变量进行更改,则JVM将无法从调用堆栈中删除所有运行旧代码的堆栈帧。调试器数据将丢失。
要查看Hotswap Bug Fixing
JVM功能的运行情况,只需将代码从main
类中的Test
方法移至其他类。这就是我的意思:
现在,您可以在MyObject
类中进行调试时动态修改代码。玩得开心!
编辑:刚刚在superuser.com上发现了类似的问题:Debugging in Eclipse, how to run until a breakpoint
答案 1 :(得分:1)
如果您正在使用1.3 JVM或更高版本运行应用程序,那么调试器仍在运行的最后一步是: - &GT;更改问题行 - 在您的情况下为“a4 value”,然后保存文件,然后按“继续”按钮以使应用程序再次运行。
保存在调试期间编辑的特定java文件将使会话从文件的start(Constructor)继续调试,并带有新值。
此编辑和保存可以多次完成,一旦保存,调试会话将从该特定文件的开头自动恢复。
答案 2 :(得分:0)