开发者社区 > 云原生 > 正文

Arthas 可以对线上jar 中的代码进行断点查看吗?

Arthas 可以对线上jar 中的代码进行断点查看吗?

展开
收起
学习娃 2023-06-14 13:51:18 180 0
2 条回答
写回答
取消 提交回答
  • 不能吧,debug 对接的是 jdwp agent

    此答案来自钉钉群“Arthas开源交流群"

    2023-06-14 17:46:58
    赞同 展开评论 打赏
  • Arthas可以对线上jar中的代码进行断点查看。Arthas是一款轻量级Java诊断工具,它可以通过Java Instrumentation技术动态注入代码,实现在运行时对Java应用程序进行调试和诊断。

    您可以通过以下步骤在Arthas中对线上jar中的代码进行断点查看:

    1. 登录到服务器,使用Arthas的attach命令连接到目标Java进程。例如,如果您想连接到进程ID为1234的Java进程,可以使用以下命令:

      $ ./arthas.sh 1234
      
    2. 使用jad命令反编译需要调试的类。例如,如果您需要调试com.example.demo.MyClass类,可以使用以下命令:

      $ jad com.example.demo.MyClass
      

      这将会在控制台上输出MyClass类的反编译代码。

    3. 使用trace命令对需要调试的方法进行追踪。例如,如果您需要对com.example.demo.MyClass类中的test方法进行调试,可以使用以下命令:

      $ trace com.example.demo.MyClass test
      

      这将会在test方法中设置一个断点,并在每次方法被调用时输出调用栈信息。

    4. 在需要调试的代码位置触发断点。当程序执行到该断点时,Arthas会中断程序的执行,并显示当前线程的调用栈信息。

    通过以上步骤,您可以在Arthas中对线上jar中的代码进行断点查看。需要注意的是,由于Arthas是在运行时动态注入代码,因此对于某些特殊的应用场景,可能会存在一些限制和不兼容性。

    2023-06-14 14:42:43
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Arthas应用诊断利器-新特征介绍 立即下载
使用Arthas 抽丝剥茧深入应用-线上诊断利器之外 立即下载
workshop专场--容器、消息&IoT专场-开发者动手实践营-容器、消息和IoT-Java诊断利器Arthas排查问题实践 立即下载