On 8/08/2016 10:26 AM, Yasumasa Suenaga wrote:
Hi David,
To get properties from memory, SA have to know memory layout.
SA is used for attaching to live process/core image. So we cannot
execute Java API.
I see - so we have to read memory element by memory element.
Okay - code seems okay.
Thanks,
David
Thanks,
Yasumasa
2016/08/08 8:52 "David Holmes" <david.hol...@oracle.com
<mailto:david.hol...@oracle.com>>:
Hi Yasumasa,
On 5/08/2016 9:59 PM, Yasumasa Suenaga wrote:
Hi all,
I tried to get system properties via "jhsdb jinfo".
However, it did not work as below:
----------------
$ /usr/local/jdk-9/bin/jhsdb jinfo --pid 1002
Attaching to process ID 1002, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 9-ea+129
Java System Properties:
java.lang.NullPointerException
at
sun.jvm.hotspot.utilities.ObjectReader.getHashtable(jdk.hotspot.agent@9-ea/ObjectReader.java:217)
at
sun.jvm.hotspot.utilities.ObjectReader.readInstance(jdk.hotspot.agent@9-ea/ObjectReader.java:247)
at
sun.jvm.hotspot.utilities.ObjectReader.readObject(jdk.hotspot.agent@9-ea/ObjectReader.java:105)
at
sun.jvm.hotspot.runtime.VM$2.doOop(jdk.hotspot.agent@9-ea/VM.java:940)
at
sun.jvm.hotspot.oops.InstanceKlass.visitField(jdk.hotspot.agent@9-ea/InstanceKlass.java:872)
at
sun.jvm.hotspot.oops.InstanceKlass.iterateStaticFieldsInternal(jdk.hotspot.agent@9-ea/InstanceKlass.java:572)
at
sun.jvm.hotspot.oops.InstanceKlass.iterateStaticFields(jdk.hotspot.agent@9-ea/InstanceKlass.java:560)
at
sun.jvm.hotspot.runtime.VM.readSystemProperties(jdk.hotspot.agent@9-ea/VM.java:935)
:
System Properties info not available!
----------------
* If you want to see all stack, please see JBS.
I think this is caused by JDK-8029891.
JDK-8029891 changes that j.u.Properties stores properties to
j.u.c.ConcurrentHashMap.
ObjectReader should be adapted to this change.
I uploaded webrev. Could you review it?
http://cr.openjdk.java.net/~ysuenaga/JDK-8163272/webrev.00/
<http://cr.openjdk.java.net/~ysuenaga/JDK-8163272/webrev.00/>
I'm not very familiar with how SA operates here so this could be a
stupid question, but why do we need to know exactly how Properties
are implemented instead of just using the public API to access them
and read/write them ??
Thanks,
David
I'm jdk 9 commiter, but I cannot access JPRT.
So I need a sponsor.
Thanks,
Yasumasa