- java.lang.Object
-
- com.ibm.j9ddr.vm29.j9.stackwalker.MethodMetaData
-
public class MethodMetaData extends Object
Java-equivalent of MethodMetaData.c. Encapsulates the JIT-specific information required for stack walking. Note that in the C, there's typedef J9JITExceptionTablePointer J9TR_MethodMetaData. That alias isn't represented in the Java.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MethodMetaData.JITMaps
Class used to pass maps by reference to jitGetMapsFromPC.
-
Field Summary
Fields Modifier and Type Field Description static long
BYTE_CODE_INFO_VALUE_FOR_GAP
static long
REGISTER_MAP_VALUE_FOR_GAP
-
Constructor Summary
Constructors Constructor Description MethodMetaData()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static UDATA
getCurrentByteCodeIndexAndIsSameReceiver(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap, VoidPointer currentInlinedCallSite, boolean[] isSameReceiver)
static VoidPointer
getFirstInlinedCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap)
static VoidPointer
getInlinedMethod(VoidPointer inlinedCallSite)
static UDATA
getJitDataResolvePushes()
static com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer
getJitGCStackAtlas(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md)
static VoidPointer
getJitInlinedCallInfo(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md)
static UDATA
getJitInlineDepthFromCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer inlinedCallSite)
static U8Pointer
getJitInternalPointerMap(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa)
static U16
getJitNumberOfMapBytes(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa)
static U16
getJitNumberOfParmSlots(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa)
static int
getJitRecompilationResolvePushes()
static U32
getJitRegisterMap(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap)
static U8Pointer
getJitStackSlots(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metaData, VoidPointer stackMap)
static int
getJitStaticMethodResolvePushes()
static I16
getJitTotalFrameSize(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md)
static int
getJitVirtualMethodResolvePushes()
static U8
getNextDescriptionBit(U8Pointer jitDescriptionCursor)
static U8Pointer
getNextDescriptionCursor(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metadata, VoidPointer stackMap, U8Pointer jitDescriptionCursor)
static VoidPointer
getNextInlinedCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer inlinedCallSite)
static UDATAPointer
getObjectArgScanCursor(WalkState walkState)
static UDATAPointer
getObjectTempScanCursor(WalkState walkState)
static VoidPointer
getStackAllocMapFromJitPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC, VoidPointer curStackMap)
static VoidPointer
getStackMapFromJitPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC)
static boolean
hasMoreInlinedMethods(VoidPointer inlinedCallSite)
static void
jitAddSpilledRegisters(WalkState walkState)
static void
jitAddSpilledRegisters(WalkState walkState, VoidPointer stackMap)
static void
jitAddSpilledRegistersForDataResolve(WalkState walkState)
static void
jitGetMapsFromPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC, MethodMetaData.JITMaps maps)
static void
markClassesInInlineRanges(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metaData, WalkState walkState)
static void
walkJITFrameSlotsForInternalPointers(WalkState walkState, U8Pointer jitDescriptionCursor, UDATAPointer scanCursor, VoidPointer stackMap, com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer gcStackAtlas)
-
-
-
Field Detail
-
REGISTER_MAP_VALUE_FOR_GAP
public static final long REGISTER_MAP_VALUE_FOR_GAP
- See Also:
- Constant Field Values
-
BYTE_CODE_INFO_VALUE_FOR_GAP
public static final long BYTE_CODE_INFO_VALUE_FOR_GAP
- See Also:
- Constant Field Values
-
-
Method Detail
-
getJitTotalFrameSize
public static I16 getJitTotalFrameSize(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitInlinedCallInfo
public static VoidPointer getJitInlinedCallInfo(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md) throws CorruptDataException
- Throws:
CorruptDataException
-
jitAddSpilledRegistersForDataResolve
public static void jitAddSpilledRegistersForDataResolve(WalkState walkState) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitDataResolvePushes
public static UDATA getJitDataResolvePushes() throws CorruptDataException
- Throws:
CorruptDataException
-
getStackMapFromJitPC
public static VoidPointer getStackMapFromJitPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitGCStackAtlas
public static com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer getJitGCStackAtlas(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md) throws CorruptDataException
- Throws:
CorruptDataException
-
getFirstInlinedCallSite
public static VoidPointer getFirstInlinedCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitInlineDepthFromCallSite
public static UDATA getJitInlineDepthFromCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer inlinedCallSite) throws CorruptDataException
- Throws:
CorruptDataException
-
hasMoreInlinedMethods
public static boolean hasMoreInlinedMethods(VoidPointer inlinedCallSite) throws CorruptDataException
- Throws:
CorruptDataException
-
getInlinedMethod
public static VoidPointer getInlinedMethod(VoidPointer inlinedCallSite) throws CorruptDataException
- Throws:
CorruptDataException
-
getCurrentByteCodeIndexAndIsSameReceiver
public static UDATA getCurrentByteCodeIndexAndIsSameReceiver(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap, VoidPointer currentInlinedCallSite, boolean[] isSameReceiver) throws CorruptDataException
- Throws:
CorruptDataException
-
jitAddSpilledRegisters
public static void jitAddSpilledRegisters(WalkState walkState) throws CorruptDataException
- Throws:
CorruptDataException
-
jitAddSpilledRegisters
public static void jitAddSpilledRegisters(WalkState walkState, VoidPointer stackMap) throws CorruptDataException
- Throws:
CorruptDataException
-
getObjectArgScanCursor
public static UDATAPointer getObjectArgScanCursor(WalkState walkState) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitNumberOfMapBytes
public static U16 getJitNumberOfMapBytes(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitRegisterMap
public static U32 getJitRegisterMap(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap) throws CorruptDataException
- Throws:
CorruptDataException
-
getNextDescriptionCursor
public static U8Pointer getNextDescriptionCursor(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metadata, VoidPointer stackMap, U8Pointer jitDescriptionCursor) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitNumberOfParmSlots
public static U16 getJitNumberOfParmSlots(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitInternalPointerMap
public static U8Pointer getJitInternalPointerMap(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa) throws CorruptDataException
- Throws:
CorruptDataException
-
walkJITFrameSlotsForInternalPointers
public static void walkJITFrameSlotsForInternalPointers(WalkState walkState, U8Pointer jitDescriptionCursor, UDATAPointer scanCursor, VoidPointer stackMap, com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer gcStackAtlas) throws CorruptDataException
- Throws:
CorruptDataException
-
getNextInlinedCallSite
public static VoidPointer getNextInlinedCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer inlinedCallSite) throws CorruptDataException
- Throws:
CorruptDataException
-
getNextDescriptionBit
public static U8 getNextDescriptionBit(U8Pointer jitDescriptionCursor) throws CorruptDataException
- Throws:
CorruptDataException
-
getObjectTempScanCursor
public static UDATAPointer getObjectTempScanCursor(WalkState walkState) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitRecompilationResolvePushes
public static int getJitRecompilationResolvePushes()
-
getJitVirtualMethodResolvePushes
public static int getJitVirtualMethodResolvePushes()
-
getJitStaticMethodResolvePushes
public static int getJitStaticMethodResolvePushes()
-
getStackAllocMapFromJitPC
public static VoidPointer getStackAllocMapFromJitPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC, VoidPointer curStackMap) throws CorruptDataException
- Throws:
CorruptDataException
-
getJitStackSlots
public static U8Pointer getJitStackSlots(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metaData, VoidPointer stackMap) throws CorruptDataException
- Throws:
CorruptDataException
-
markClassesInInlineRanges
public static void markClassesInInlineRanges(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metaData, WalkState walkState) throws CorruptDataException
- Throws:
CorruptDataException
-
jitGetMapsFromPC
public static void jitGetMapsFromPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC, MethodMetaData.JITMaps maps) throws CorruptDataException
- Throws:
CorruptDataException
-
-