Eclipse:编辑源代码并继续调试

时间:2011-12-08 05:37:36

标签: eclipse debugging

我正在使用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);
        }

    }
}

3 个答案:

答案 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方法移至其他类。这就是我的意思:

Hotswap Bug Fixing in Action

现在,您可以在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)

如果您只是想在调试期间更改a5的值,那么比更改源更容易。 您可以在变量视图中设置一个新值,您可以在Eclipse的调试透视图中看到它。

请参阅手册herehere