RFR(XS) [aarch64] hs_err logs do not print register mappings

White, Derek Derek.White at cavium.com
Wed Dec 14 17:25:11 UTC 2016


Thanks for the review David.

And yes, it will be nice to clear out the BUILTIN_SIM code some day!

 - Derek

-----Original Message-----
From: David Holmes [mailto:david.holmes at oracle.com] 
Sent: Wednesday, December 14, 2016 12:33 AM
To: White, Derek <Derek.White at cavium.com>; aarch64-port-dev at openjdk.java.net; hotspot-runtime-dev at openjdk.java.net
Subject: Re: RFR(XS) [aarch64] hs_err logs do not print register mappings

On 14/12/2016 3:27 AM, White, Derek wrote:
> Please review this simple change to have the hs_err logs print register mappings on aarch64 as they are on other platforms. See end of message for example.
>
> BUG: https://bugs.openjdk.java.net/browse/JDK-8171129
>
> WEBREV: http://cr.openjdk.java.net/~drwhite/8171129/webrev.01/

Looks okay, but what about the BUILTIN_SIM case?

David

> Tested by crashing the JVM (thanks Unsafe!)
>
> Thanks,
>
>
> -        Derek White
>
> Old Output (example):
> Register to memory mapping:
>
> R0=0x00000000ffffffff
> .
> . (etc)
> .
> R30=0x0000400007cd7514
>
> New output (example):
> Register to memory mapping:
>
> R0 =0x0000000000000000 is an unknown value
> R1 =0x0000000101d08388 is an oop
> sun.misc.Unsafe
> {0x0000000101d08388} - klass: 'sun/misc/Unsafe'
> - ---- fields (total size 2 words):
> R2 =0x000000000000000d is an unknown value
> R3 =0x0000ffffa801aaa0 is an unknown value
> R4 =0x0000ffffb0552074: <offset 0x0000000001692074> in 
> /mnt/diskc/dwhite/new-memcpy-ws/build/linux-aa
> rch64-normal-server-fastdebug/images/jdk/lib/aarch64/server/libjvm.so 
> at 0x0000ffffaeec0000
> R5 =0x0000ffffb048a000: <offset 0x00000000015ca000> in 
> /mnt/diskc/dwhite/new-memcpy-ws/build/linux-aa
> rch64-normal-server-fastdebug/images/jdk/lib/aarch64/server/libjvm.so 
> at 0x0000ffffaeec0000
> R6 =0x0000000000000004 is an unknown value
> R7 =0x0000ffffa801aaa0 is an unknown value
> R8 =0x0000ffff9875e480 is at entry_point+64 in 
> (nmethod*)0x0000ffff9875e290
> R9 =0xffffffffffff0000 is an unknown value
> R10=0x0000ffffa80184a8 is an unknown value
> R11=0x0000000000000000 is an unknown value R12={method} 
> {0x0000fffcf18455e0} 'getByte' '(J)B' in 'sun/misc/Unsafe'
> R13=0x0000ffffb04913ca: <offset 0x00000000015d13ca> in 
> /mnt/diskc/dwhite/new-memcpy-ws/build/linux-aa
> rch64-normal-server-fastdebug/images/jdk/lib/aarch64/server/libjvm.so 
> at 0x0000ffffaeec0000
> R14=0x0000000000000001 is an unknown value
> R15=0x0000ffffaee0d8e8 is pointing into the stack for thread: 
> 0x0000ffffa801a800 R16=0xfefefefefefefefe is an unknown value
> R17=0x0000000101d07cd0 is an oop
> java.lang.Class
> {0x0000000101d07cd0} - klass: 'java/lang/Class'
> - ---- fields (total size 14 words):
> - private volatile transient strict 'cachedConstructor' 
> 'Ljava/lang/reflect/Constructor;' @12  NULL
> (0 0)
> - private volatile transient strict 'newInstanceCallerCache' 
> 'Ljava/lang/Class;' @16  NULL (0 203a0f
> aa)
> - private transient 'name' 'Ljava/lang/String;' @20  
> "segvtest.SEGVTest"{0x0000000101d07d50} (203a0f aa 203936bd)
> - private transient 'module' 'Ljava/lang/reflect/Module;' @24  a 
> 'java/lang/reflect/Module'{0x000000
> 0101c9b5e8} (203936bd 0)
> - private final 'classLoader' 'Ljava/lang/ClassLoader;' @28  NULL (0 
> 0)
> - private 'packageName' 'Ljava/lang/String;' @32  NULL (0 0)
> - private final strict 'componentType' 'Ljava/lang/Class;' @36  NULL 
> (0 203a0fdc)
> - private volatile transient strict 'reflectionData' 
> 'Ljava/lang/ref/SoftReference;' @40  a 'java/la 
> ng/ref/SoftReference'{0x0000000101d07ee0} (203a0fdc 0)
> - private volatile transient 'genericInfo' 
> 'Lsun/reflect/generics/repository/ClassRepository;' @44 NULL (0 0)
> - private volatile transient strict 'enumConstants' 
> '[Ljava/lang/Object;' @48  NULL (0 0)
> - private volatile transient strict 'enumConstantDirectory' 
> 'Ljava/util/Map;' @52  NULL (0 0)
> - private volatile transient 'annotationData' 
> 'Ljava/lang/Class$AnnotationData;' @56  NULL (0 0)
> - private volatile transient 'annotationType' 
> 'Lsun/reflect/annotation/AnnotationType;' @60  NULL (0
> 0)
> - transient 'classValueMap' 'Ljava/lang/ClassValue$ClassValueMap;' @64  
> NULL (0 0)
> - private volatile transient 'classRedefinedCount' 'I' @96  0
> - signature: Lsegvtest/SEGVTest;
> - fake entry for mirror: 'segvtest/SEGVTest'
> - fake entry for array: NULL
> - fake entry for oop_size: 14
> - fake entry for static_oop_field_count: 0
> R18=0x0000ffffb050d50c: <offset 0x000000000164d50c> in 
> /mnt/diskc/dwhite/new-memcpy-ws/build/linux-aa
> rch64-normal-server-fastdebug/images/jdk/lib/aarch64/server/libjvm.so 
> at 0x0000ffffaeec0000
> R19=0x00000000000000b8 is an unknown value
> R20=0x0000ffffaee0e328 is pointing into the stack for thread: 
> 0x0000ffffa801a800
> R21=0x0000ffffb055ef90: <offset 0x000000000169ef90> in 
> /mnt/diskc/dwhite/new-memcpy-ws/build/linux-aa
> rch64-normal-server-fastdebug/images/jdk/lib/aarch64/server/libjvm.so 
> at 0x0000ffffaeec0000
> R22=0x0000fffcf1840471 is pointing into metadata
> R23=0x0000ffffaee0e520 is pointing into the stack for thread: 
> 0x0000ffffa801a800
> R24=0x0000ffffaee0e390 is pointing into the stack for thread: 
> 0x0000ffffa801a800 R25=0x0000ffff9792a6ec is at begin+0 in a stub 
> StubRoutines::call_stub [0x0000ffff9792a6ec, 0x0000ffff9792a920[ (564 
> bytes)
> R26=0x0000fffcf1842160 is pointing into metadata
> R27=0x0000000000000000 is an unknown value
> R28=0x0000ffffa801a800 is a thread
> R29=0x0000ffffaee0e380 is pointing into the stack for thread: 0x0000ffffa801a800
> R30=0x0000ffff98757764 is at entry_point+100 in (nmethod*)0x0000ffff98757510
>


More information about the hotspot-runtime-dev mailing list