簡體   English   中英

日食中的堆棧跟蹤

[英]Stack trace in eclipse

如何通過eclipse跟蹤堆棧? 在我的代碼中,我正在嘗試上傳文件,當我在應用程序中執行文件上傳操作時,它只是掛起而沒有錯誤消息。 我已經嘗試過調試,但它沒有多大幫助。

假設您正在從Eclipse運行應用程序,但是在像Glassfish或Tomcat這樣的Java EE容器內,在異常對象上調用printStackTrace()方法(當被捕獲時)將在Eclipse的控制台窗口中顯示堆棧跟蹤。 在您的情況下,您首先需要知道是否正在拋出異常。 我不建議在運行時創建一個Exception對象,只是為了從中推斷出堆棧跟蹤。

當然,這在編寫生產質量代碼時不是一個好習慣,您應該考慮使用log4j,jul或slf4j等日志框架來跟蹤應用程序行為。

如果push推進,則啟用servlet容器的調試(這在容器之間有所不同),這樣除了應用程序之外,您還可以跟蹤容器本身的行為。

  • 在服務器上,在JDK bin文件夾中以與啟動Glassfish相同的用戶啟動“jvisualvm”。
  • 雙擊“Local”下的相應條目,附加到Glassfish進程。
  • 在“線程”面板上,單擊“線程轉儲”按鈕。
  • 將堆棧跟蹤復制到剪貼板。
  • 在Eclipse中,將堆棧跟蹤粘貼到“控制台”面板中的“Java堆棧跟蹤控制台視圖”中。

我建議逐步使用eclipse調試器找出它掛起的位置。 當您單步執行時,這將自動為您提供堆棧跟蹤。

我發現“步入”(F5)功能最有用,這可以讓你遞歸地下載到函數中來探索正在發生的事情。

您可以在文件上傳代碼的開頭設置斷點,以便您可以在大致正確的位置開始單步執行。 在我的Eclipse版本中,堆棧跟蹤顯示在相應線程下方左上角的“調試”窗格中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM