2011-12-08 108 views
11

我使用的Eclipse IDE(赫利俄斯版) 雖然在Eclipse中調試,是可以用來編輯源並繼續調試?的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); 
     } 

    } 
} 

回答

8

是的,它是可以編輯源,並繼續在Eclipse中調試!您會在這裏找到豐富的信息:Debugging with the Eclipse Platform(向下滾動到部分熱交換錯誤修正:在即時碼固定)。

如果你正在運行的Java虛擬機(JVM)V1.4或更高時,Eclipse 支持一個叫做熱交換錯誤修正功能(在JVM V1.3或更低不可用)。它允許在 調試程序會話期間更改源代碼,這比退出應用程序更好, 更改代碼,重新編譯,然後開始另一個調試會話。要使用此功能,只需更改編輯器 中的代碼並恢復調試。

有一些情況下,該功能將無法正常工作。例如。如果您更改您的main方法的a4變量,JVM將無法刪除調用堆棧上運行舊代碼的所有堆棧幀。調試器數據將丟失。

要查看Hotswap Bug Fixing JVM功能的實際應用,只需將Test類中的main方法中的代碼移動到某個其他類。這就是我的意思是:

Hotswap Bug Fixing in Action

現在,您可以修改代碼在運行,而在MyObject類調​​試。玩的開心!

編輯:剛剛發現了類似的問題在superuser.com:Debugging in Eclipse, how to run until a breakpoint

0

如果你只是想調試它的很多不是改變源時更容易改變a5值。 您可以在變量視圖中設置一個新值,您可以在Eclipse中的調試透視圖中看到該值。

參見手冊herehere

1

如果你碰巧運行使用JVM 1.3或更高版本的應用程序中,有一個與調試器仍然在運行最後一個步驟: - >更改問題行 - 在你的情況下「a4值」,然後保存文件,然後按下恢復按鈕讓應用程序再次運行。

這種節省調試過程中,你已經編輯特定的java文件,將使會議上繼續與新的價值的文件,從開始(構造函數)調試。

此編輯和保存可以進行n次,一旦保存,調試會話將自動從該特定文件的開始處恢復。