Java:监视静态字段状态



我有一个JVM正在运行。对于时间t0和t1的两个不同时刻,我想知道所有类的所有静态场的值在t1与t0之间是如何变化的。

我心目中的解决方案:

  1. 监视/调试/配置所有静态字段的写入访问权限
  2. 比较在t0和t1拍摄的2个内存快照,以查找字段值中的差异。我可以访问Java VisualVM和YourKit探查器

以上任何一项我都找不到答案。

如果可能的话,实现目标的最佳方式是什么?

使用java调试器,您应该能够在字段的值上设置断点,以便调试器在值更改时中断。例如,Eclipse java调试器有这样一个功能(右键单击字段,选择"切换断点")。

编辑:如果你想要更多的控制(例如程序控制),你可以使用Btrace脚本运行你的程序。这些都是使用非常精简的API的普通Java程序,并且被连接到JVM中。

最新更新