alibaba / arthas

Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
https://arthas.aliyun.com/
Apache License 2.0
35.7k stars 7.51k forks source link

arthas能否指定对象watch或者vmtool express? #2908

Open qq1033731787 opened 2 months ago

qq1033731787 commented 2 months ago

求问各位大佬

  1. 已知一个对象的内存地址,有办法查看这个对象吗? vmtool只能list出来 不能指定某个内存地址 比如 [java.util.concurrent.CountDownLatch@333f2f09] 我有办法直接查看到333f2f09这个实例吗(而不是通过依赖一层层的找下去)?
  2. watch是这样的 [cost=13.008353ms] result=@ArrayList[ @Object[][isEmpty=false;size=1], @test[test@5fb12998], null, ] 我能在watch的时候指定监听这个5fb12998 内存地址的target吗?
qq1033731787 commented 2 months ago

@RaymondLam1 @furaul 大佬求助

qq1033731787 commented 2 months ago

@hengyunabc 大佬求助

hengyunabc commented 2 months ago

1,2 都没办法实现。

想要任意查找对象,可以 heapdump,再用 oql 语句来查询。

qq1033731787 commented 2 months ago

1,2 都没办法实现。

想要任意查找对象,可以 heapdump,再用 oql 语句来查询。

@hengyunabc 感谢大佬回复,再请教下,为什么可以在express中指定匹配target、params、result的一些成员变量,但是却不能指定内存地址?

lxyyouxiang123 commented 1 month ago

1,2 都没办法实现。 想要任意查找对象,可以 heapdump,再用 oql 语句来查询。

@hengyunabc 感谢大佬回复,再请教下,为什么可以在express中指定匹配target、params、result的一些成员变量,但是却不能指定内存地址?

arthas本身就是java实现的,java功能没法直接通过hashcode值查找对象