我可以使用Thread.currentThread().getStackTrace()
检索当前的堆栈跟踪,但这只给出了调用中涉及的类。是否可以检索调用跟踪中涉及的对象实例?也许某种类型的库允许我从堆中检索对象?
我有一个问题,需要我追溯到一个Spring bean,它间接创建了我正在请求堆栈跟踪的对象。
更新 如果在Java中没有内置工具,我正在搜索可以在运行时为我执行此操作的嵌入式库。
答案 0 :(得分:2)
这是一个非常有趣的想法,但不幸的是,整个没有,你不能,这是不可能的。
UPD:答案之一是" no"事实上,如果可能的话,那么必须存在一些对所有已创建对象的引用列表。但在这种情况下,Java GC根本不起作用。
答案 1 :(得分:0)
您可以尝试housemd。它由工程师@阿里巴巴开发,即使在生产环境中也可安全使用,例如: taobao.com。
其功能包括:
Display object field value Output invocation stack trace
以下是一个示例屏幕截图:
答案 2 :(得分:0)
尝试使用Eclipse调试器以查看特定方法中使用的对象的值。在您要暂停程序的行上放置断点。