如何在 "dtrace style" 中跟踪 java 应用程序?

How to trace java application in "dtrace style"?

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

在 linux 上(至少在 fedora 和 red hat 上)你可以用 systemtap 来做,见 this link for the explanation. It uses byteman to trace java applications. Though you can not use systemtap on other platforms than linux, you can add byteman to your project and use it on any os. Byteman allows user to inject custom code into running java classes, see documentation