2011-09-02 24 views
0

我有一個在Grails中拋出的異常。查看堆棧跟蹤很有幫助,因爲我可以看到代碼被轟炸的位置,但事實證明它只是轟炸了數百條記錄中的一條記錄,因此知道當時內存中變量的值是什麼的例外。例如,在Visual Studio中,當發生異常時,引發異常的所有內容都會暫停,並且可以查看內存中的所有變量。Grails - 異常時的變量值

對於Grails(或Spring Source Tool Suite/Eclipse)有沒有類似的東西?有沒有辦法將所有變量轉儲到標準輸出?謝謝。

+0

@proflux請解釋。 – skaz

+0

我猜測,這仍然與您的連接池問題有關,如果不是那麼抱歉... – proflux

+0

@proflux - 這是無關的。另外,我不知道如果是我會剃犛牛。我需要深入研究這個問題的底部,並且在這個問題上幾乎不會阻止 - 如果我有答案,這隻會有所幫助,所以我將它放在了未來的希望之中。爲什麼諷刺? :( – skaz

回答

2

聽起來好像你想設置一個異常斷點,一個只有在引發特定類型的異常時纔會觸發的斷點。另外,如果你使用的是STS,你可以在groovy代碼中設置條件斷點(當然你也可以在STS或Eclipse中設置Java的條件斷點,但是隻有STS允許這樣的Groovy)。

1

「數百」不是無法管理的數字。你能用遠程調試器連接到你的應用程序並附加一個斷點嗎?在Intelli-J中,您可以在調試模式下啓動服務器;除了在啓用遠程調試連接的情況下將戰爭部署到tomcat容器以外,不確定在eclipse STS/vanilla grails中如何執行此操作。

+0

我在本地運行,所以我可以成功附加斷點,問題是它只在一個記錄上崩潰,所以不斷打「下一個,下一個,下一個「每個記錄,直到我得到正確的記錄不起作用。如果我只是讓它運行,那麼我就不會發生崩潰發生的情況。 – skaz

+0

在Eclipse中,您可以設置一個條件斷點。只需右鍵單擊斷點,轉到屬性並啓用條件。 – proflux

+0

@proflux - 有條件的斷點是有道理的 - 問題在於我不知道發生崩潰的情況,因爲當崩潰發生時,我沒有變量值的上下文。我必須添加打印語句,以便在崩潰發生時查看事件的狀態。如果我能在設置任何斷點之前看到崩潰時的所有變量,那將會容易得多。有沒有這樣的可能,或者當我發現有關崩潰的路線時,必須記下「打印變量」? – skaz