通过修改OpenJDK记录所有方法调用

时间:2017-11-13 14:54:25

标签: java logging openjdk jvm-hotspot

我正在尝试修改OpenJDK 9以记录Java程序调用的每个方法,特别是我正在尝试一个非常简单的类,其中main调用一个自己的静态方法在stdout上每两秒打印一行(等待Thread.sleep完成) 阅读this blog post后,我将日志代码放在javaCalls::call中。它可以工作,记录从JVM启动的大量调用到Myclass.main的调用,然后停止(我的程序继续打印)。使用CTRL^C退出程序后,日志记录将恢复并记录Thread.exit等方法。 然后我尝试了另一种方法:在每个字节码上检测hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp以进行调用。比以前更糟糕,这不会打印任何东西。

起初我依赖于新的JDK 9日志记录功能,但后来我决定直接附加到文件以排除在某些时候禁用日志的可能性。

我有两个问题:

  1. 我是否误解了引用的博客?我的第一次尝试不应该足以记录所有内容吗?
  2. 您对我有更好的机会实现目标有什么建议吗?

0 个答案:

没有答案