получить статические поля класса в дамп кучи в OQL - PullRequest
5 голосов
/ 20 октября 2010

У меня есть дамп кучи, и я использую Eclipse MAT, хотя я полагаю, это должно работать через visualvm или любой другой OQL-клиент.

Мы можем выбрать поля всех экземпляров класса, выполнив что-то вроде

select s.field1, s.field2 from org.me.MyClass

... но это ограничено переменными-членами и типами с экземплярами.

Как выбрать статические поля класса без экземпляров?

Это как-то связано с другим вопросом .

Ответы [ 2 ]

5 голосов
/ 15 декабря 2010

Для доступа к статическому полю 'props' класса java.lang.System, который вы можете использовать (в VisualVM)

select heap.findClass("java.lang.System").statics.props
select heap.findClass("java.lang.System").props
4 голосов
/ 26 марта 2012

Это немного хакерски, но работает в MAT:

SELECT c.SIZE
FROM INSTANCEOF java.lang.Class c
WHERE c.@displayName.contains("class java.lang.Integer ")
...