我需要知道哪些方法在代碼中被逐一調用。簡單的逐步調試無助於(需要太多時間)。我怎樣才能做到這一點?如果不更改代碼並將結果保存在文件中,這將非常棒。在java中獲取被調用方法的堆棧
1
A
回答
1
因爲它似乎,也許你不想檢查堆棧樹,只是順序,你可以檢查出BTrace或Adding logging with Java agent。
1
在您的程序完成之前,您可以Thread.currentThread().getStackTrace();
然後打印每個這些元素。堆棧跟蹤顯示您的線程執行順序。
1
聽起來像是一個橫切關注的問題,特別是當您談論不改變現有代碼時。
AspectJ可以使用切入點爲您完成這項工作。
http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html
1
你的意思是你想記錄每方法調用發生在你的程序?如果是這樣,看看AspectJ - 有一個例子here它記錄特定的方法,但你可以很容易地適應它覆蓋所有的方法。
0
當你抓到一個異常,你可以嘗試使用printStackTrace()函數來轉儲出被調用的內容。
try{
//Your code
}
catch(Exception e){
e.printStackTrace();
}
0
以調試模式運行你的代碼,你就可以設置斷點以暫停執行,由線進行線,檢查變量等。基本上所有的集成開發環境具有調試模式。
相關問題
- 1. 的Java方法調用堆棧複製
- 2. 在堆棧跟蹤中獲取被調用的靜態類名
- 3. Android中的方法調用堆棧
- 4. 錯誤「不支持指定的方法」。獲取調用堆棧
- 5. 在Java中製作堆棧方法
- 6. c#獲取調用方法沒有堆棧跟蹤
- 7. 如何獲取/回溯方法調用堆棧
- 8. 獲取方法被調用的方法?
- 9. 實現堆棧獲取方法
- 10. 堆棧在java中使用堆棧
- 11. 獲取調用堆棧的深度GCC
- 12. 無法在Windows中獲取調用堆棧
- 13. 限制用於Java方法調用的CPU /堆棧?
- 14. C++從std :: exception獲取調用堆棧
- 15. 獲取當前調用堆棧
- 16. 訪問Java調用堆棧
- 17. 在Visual Studio 2010中可視化調用方法調用堆棧
- 18. 可能通過反射來獲取調用方法類的實例,或調用堆棧中的任何方法?
- 19. 如何在windows中獲取c中的調用堆棧?
- 20. Java堆棧方法(multipop)初學者java
- 21. 如何在Java中獲得免費的堆大小(不是堆棧/方法mem)?
- 22. 在java中的通用堆棧的打印方法
- 23. 在發佈版本中獲取調用堆棧的問題
- 24. 如何獲取函數在調用堆棧中的位置?
- 25. Java和堆棧區域的方法區
- 26. 推斷一個方法的堆棧內存在Java中使用
- 27. 獲取堆棧幀
- 28. 在同一個類中的堆棧上調用方法
- 29. Java堆棧溢出,因爲遞歸方法調用
- 30. 如何打印java方法調用堆棧?
請檢查這一個:http://stackoverflow.com/questions/3256369/navigating-java-call-stack-in-eclipse/3256406#3256406 – dominicbri7