【问题标题】:How to trace java application in "dtrace style"?如何以“dtrace 样式”跟踪 java 应用程序?
【发布时间】:2015-01-30 15:04:06
【问题描述】:

我的任务是使用动态探针(如 dtrace 或 systemtap)跟踪一些 java 应用程序。当然,它应该在没有应用程序重新启动或重新编译的情况下完成。它应该允许在方法调用和内部 JVM 事件上动态设置拦截器。 在 solaris 中可以通过 dtrace 完成,但在其他系统中则不行。 我该如何解决这个任务?

【问题讨论】:

  • 您可以尝试github.com/alfredxiao/jackplay,它的设计目的就是让您无需更改代码或重新部署即可启用跟踪。它还允许您在 JVM live 中重新定义方法体。

标签: java trace jvm-hotspot dtrace jvmti


【解决方案1】:

在 linux 上(至少在 fedora 和 red hat 上)您可以使用 systemtap 来完成,请参阅 this link 的说明。它使用byteman 来跟踪Java 应用程序。尽管您不能在 linux 以外的其他平台上使用 systemtap,但您可以将 byteman 添加到您的项目中并在任何操作系统上使用它。 Byteman 允许用户将自定义代码注入到正在运行的 java 类中,请参阅documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多