ottenere campi statici di una classe in un heap dump in OQL
-
09-10-2019 - |
Domanda
Ho un heap dump e sto usando Eclipse MAT, anche se suppongo che questo dovrebbe funzionare attraverso VisualVM o qualunque client OQL.
Possiamo selezionare i campi di tutte le istanze di una classe facendo qualcosa di simile
select s.field1, s.field2 from org.me.MyClass
... ma questo è limitato a variabili membro, e ai tipi con le istanze.
Come si può selezionare i campi statici di una classe senza istanze?
Questo è in qualche modo legato alla quest'altra domanda .
Soluzione
Per l'accesso campo statico 'oggetti di scena' della classe java.lang.System è possibile utilizzare (in VisualVM)
select heap.findClass("java.lang.System").statics.props
select heap.findClass("java.lang.System").props
Altri suggerimenti
Questo è un po 'hacker, ma lavora in MAT:
SELECT c.SIZE
FROM INSTANCEOF java.lang.Class c
WHERE c.@displayName.contains("class java.lang.Integer ")
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow