OQLのヒープダンプでクラスの静的フィールドを取得する
-
09-10-2019 - |
質問
ヒープダンプがあり、Eclipse Matを使用していますが、これはVisualVMまたはOQLクライアントを介して機能するはずだと思います。
クラスのすべてのインスタンスのフィールドを選択できます。
select s.field1, s.field2 from org.me.MyClass
...しかし、これはメンバー変数、およびインスタンスのあるタイプに制限されています。
インスタンスなしでクラスの静的フィールドをどのように選択できますか?
これはやや関連しています この他の質問.
解決
クラスjava.lang.systemの静的フィールド「プロップ」にアクセスするには、(VisualVMで)使用できます
select heap.findClass("java.lang.System").statics.props
select heap.findClass("java.lang.System").props
他のヒント
これは少しハッキッシュですが、マットでは機能します:
SELECT c.SIZE
FROM INSTANCEOF java.lang.Class c
WHERE c.@displayName.contains("class java.lang.Integer ")
所属していません StackOverflow