我可以使用Thread.currentThread().getStackTrace()
來檢索當前堆棧跟蹤,但這隻給出了調用中涉及的類。是否有可能檢索呼叫跟蹤中涉及的對象實例?也許某種類型的圖書館可以讓我從堆中收回物品?獲取涉及Java堆棧跟蹤的對象
我有一個問題,需要我追溯到一個Spring bean,它間接創建了我請求堆棧跟蹤的對象。
UPDATE 如果在Java中沒有內置工具,我正在尋找一個可嵌入的庫,它可以在運行時爲我執行此操作。
我可以使用Thread.currentThread().getStackTrace()
來檢索當前堆棧跟蹤,但這隻給出了調用中涉及的類。是否有可能檢索呼叫跟蹤中涉及的對象實例?也許某種類型的圖書館可以讓我從堆中收回物品?獲取涉及Java堆棧跟蹤的對象
我有一個問題,需要我追溯到一個Spring bean,它間接創建了我請求堆棧跟蹤的對象。
UPDATE 如果在Java中沒有內置工具,我正在尋找一個可嵌入的庫,它可以在運行時爲我執行此操作。
這是一個非常有趣的想法,但不幸的是,整個沒有,你不能,這是不可能的。
UPD:回答爲「否」的原因之一是,如果可能的話,那麼對所有創建的對象的引用列表必須存在。但在這種情況下,Java GC根本無法工作。
該參數不成立:Java具有'WeakReference'這種用例。 –
不是存儲調用中涉及的所有對象引用的堆嗎?我的意思是一旦子函數調用完成,JVM就必須恢復調用方法。是不可能訪問堆的這部分? – NagyI
這似乎是黑客JVM –