[PATCH] typeToVtbl of BasicTypeDataBase should not be static

Coleen Phillmore coleen.phillimore at oracle.com
Tue Mar 19 07:11:16 PDT 2013


I looked at this week and this looks good.
coleen

On 3/19/2013 3:45 AM, 云达(Yunda) wrote:
>
> cc'ing hotspot-runtime for an official Review.
>
> Regards,
>
> Yunda
>
> *From:*Staffan Larsen [mailto:staffan.larsen at oracle.com]
> *Sent:* Tuesday, March 05, 2013 9:18 PM
> *To:* 云达(Yunda)
> *Cc:* serviceability-dev at openjdk.java.net
> *Subject:* Re: [PATCH] typeToVtbl of BasicTypeDataBase should not be 
> static
>
> Yunda,
>
> Thanks for the patch. I have created issue JDK-8009456 to track this 
> and can sponsor the fix as soon as we get a Review of the fix.
>
> /Staffan
>
> On 28 feb 2013, at 04:59, 云达(Yunda) <yunda.mly at taobao.com 
> <mailto:yunda.mly at taobao.com>> wrote:
>
>
>
> Hi all,
>
> I found that when I detached a java process and attached another java 
> process, the “universe” command of CLHSDB didn’t show the right 
> information. But when I restarted CLHSDB and attached to the same 
> process the problem disappeared:
>
> hsdb> attach 29211
>
> Attaching to process 29211, please wait...
>
> hsdb> universe
>
> Heap Parameters:
>
> ParallelScavengeHeap [ PSYoungGen [ eden = 
> [0x00000000ee200000,0x00000000ee289aa8,0x00000000eef70000] , from = 
> [0x00000000ef1a0000,0x00000000ef1a0000,0x00000000ef3d0000] , to = 
> [0x00000000eef70000,0x00000000eef70000,0x00000000ef1a0000] ] PSOldGen 
> [ [0x00000000ca600000,0x00000000ca600000,0x00000000cc9c0000] ]  ] hsdb>
>
> hsdb> detach
>
> hsdb> attach 29887
>
> Attaching to process 29887, please wait...
>
> hsdb> universe
>
> Heap Parameters:
>
> *unknown subtype of CollectedHeap*@ 0x0000000000d56fb0 
> (0x00000000ca600000,0x0000000100000000)
>
> hsdb> quit
>
> [~]$ java -cp .:$JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
>
> hsdb> attach 29887
>
> Attaching to process 29887, please wait...
>
> hsdb> universe
>
> Heap Parameters:
>
> *ParallelScavengeHeap*[ PSYoungGen [ eden = 
> [0x00000000ee200000,0x00000000ee289a68,0x00000000eef70000] , from = 
> [0x00000000ef1a0000,0x00000000ef1a0000,0x00000000ef3d0000] , to = 
> [0x00000000eef70000,0x00000000eef70000,0x00000000ef1a0000] ] PSOldGen 
> [ [0x00000000ca600000,0x00000000ca600000,0x00000000cc9c0000] ]  ] hsdb>
>
> I think it’s caused by the wrong definition of “typeToVtbl” field of 
> BasicTypeDataBase. Since typeToVtbl should be recreated every time SA 
> attaches to a new process, it should not be static. So I made a small 
> patch fo fix it:
>
> diff -r ec2eddfed950 
> agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java
>
> --- 
> a/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java 
> Tue Feb 26 14:09:52 2013 +0100
>
> +++ 
> b/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java 
> Thu Feb 28 11:57:55 2013 +0800
>
> @@ -150,7 +150,7 @@
>
>      return VM.getVM().getOopSize();
>
>    }
>
> -  static HashMap typeToVtbl = new HashMap();
>
> +  private HashMap typeToVtbl = new HashMap();
>
>    private Address vtblForType(Type type) {
>
>      Address vtblAddr = (Address)typeToVtbl.get(type);
>
> After applying this patch, the problem I mentioned above disappeared.
>
> Regards,
>
> Yunda
>
> ------------------------------------------------------------------------
>
>
> This email (including any attachments) is confidential and may be 
> legally privileged. If you received this email in error, please delete 
> it immediately and do not copy it or use it for any purpose or 
> disclose its contents to any other person. Thank you.
>
> 本电邮(包括任何附件)可能含有机密资料并受法律保护。如您 不是正确的收件 
> 人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透 
> 露本邮件之内容。谢 谢。
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130319/f8e1c52b/attachment-0001.html 


More information about the hotspot-runtime-dev mailing list