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

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

展开
收起
学习娃 2023-06-14 13:51:18 276 发布于北京 分享
分享
版权
举报
2 条回答
写回答
取消 提交回答
  • 不能吧,debug 对接的是 jdwp agent

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

    2023-06-14 17:46:58 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论

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

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理