2011-08-01 16 views
2

我正在修改一個相當大的代碼庫,我正在調試過程中。我的代碼沒有終止,所以我沒有得到一個堆棧跟蹤。我試圖用斷點隔離故障代碼,但不幸的是,它貫穿始終執行的部分(事務管理器),所以我點擊死亡。此外,我得到的印象是,代碼只在特定條件下破解,但大部分時間運行良好。如何在不終止的代碼中獲取最後執行的方法?

Intellij中有沒有一種方法可以查看最後一個方法是/當前執行的方法?

謝謝

回答

3

您可以使用跟蹤工具BTrace打印出您的程序中輸入的每個方法的名稱。 BTrace附帶一個示例腳本,名爲AllMethods,它就是這樣做的。

你們所要做的就是啓動你的java進程,然後針對JVM的PID運行BTrace腳本。它會打印輸入的每種方法。如果你喜歡,你可以限制它到某些包。有關使用BTrace的更多信息,請查看tutorial

+0

與JVM的PID你的意思是進程號碼,即你使用ps/top? – ib84

+0

@ ib84是的,您在'ps'中看到的進程ID – dogbane

1

使用分析器。它會給你一個正在執行哪些方法的細目,你的程序在每種方法上花了多少時間等等。從那裏可以很容易地發現你的程序在哪裏花費時間。

JProfiler就是一個例子。我認爲它有一個功能齊全的試用版/演示版。

+0

感謝您的回答,但跟蹤似乎是專門的解決方案 – ib84

相關問題