Skip to main content

arthas方法运行后查看成员变量

用户问题 :#

arthas方法运行后查看成员变量


专家官方解答 :#

在Arthas中,若想在方法运行后查看某个对象实例的成员变量,你可以采用以下步骤进行:

  1. 定位方法执行: 首先,你需要确定你想观察的方法是在哪个类中以及方法的名称。可以使用tracewatch命令来定位方法的执行。比如,如果你想知道类com.example.YourClass中的yourMethod方法运行时的情况,可以执行:

    trace com.example.YourClass yourMethod
  2. 观察对象实例: 在方法执行的上下文中,Arthas提供了watch命令来观测方法内部特定对象实例的状态,包括其成员变量。你可以在watch命令中利用OGNL表达式来访问和打印成员变量。例如,假设你想查看每次yourMethod执行时,对象实例this的成员变量memberVariable的值,可以执行:

    watch com.example.YourClass yourMethod "{params[0].memberVariable}"

    这里params[0]通常代表方法的第一个参数,如果是查看当前对象实例的成员变量,直接使用this.memberVariable

  3. 分析输出结果: 执行上述命令后,每次yourMethod被调用时,Arthas都会打印出memberVariable的值。通过这些输出,你可以观察成员变量的变化情况,从而帮助分析问题。

  4. 深入分析: 如果需要更详细的对象结构或深层次的分析,可以考虑使用heapdump命令生成堆转储文件,然后使用如Eclipse Memory Analyzer (MAT)等工具来进一步分析成员变量的引用链、大小等详细信息。

请注意,根据实际需求调整上述命令中的类名、方法名及成员变量路径。上述步骤结合了Arthas的监控与诊断能力,帮助你动态地查看方法运行时对象的成员变量状态。

---------------

参考链接 :#

*专家经验:Arthas 排查内存泄露的方法

*# Arthas 后台异步任务

*专家经验:Arthas 官方教程

---------------

答疑服务说明:#

本内容经由技术专家审阅的用户问答的镜像生成,我们提供了专家智能答疑服务,在页面的右下的浮窗”专家答疑“。您也可以访问 : 全局专家答疑 。 咨询其他产品的的问题

反馈#

如问答有错漏,欢迎点:差评给我们反馈。