- 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 classMethodMetaData.JITMapsClass used to pass maps by reference to jitGetMapsFromPC.
-
Field Summary
Fields Modifier and Type Field Description static longBYTE_CODE_INFO_VALUE_FOR_GAPstatic longREGISTER_MAP_VALUE_FOR_GAP
-
Constructor Summary
Constructors Constructor Description MethodMetaData()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static UDATAgetCurrentByteCodeIndexAndIsSameReceiver(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap, VoidPointer currentInlinedCallSite, boolean[] isSameReceiver)static VoidPointergetFirstInlinedCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap)static VoidPointergetInlinedMethod(VoidPointer inlinedCallSite)static UDATAgetJitDataResolvePushes()static com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointergetJitGCStackAtlas(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md)static VoidPointergetJitInlinedCallInfo(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md)static UDATAgetJitInlineDepthFromCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer inlinedCallSite)static U8PointergetJitInternalPointerMap(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa)static U16getJitNumberOfMapBytes(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa)static U16getJitNumberOfParmSlots(com.ibm.j9ddr.vm29.pointer.generated.J9JITStackAtlasPointer sa)static intgetJitRecompilationResolvePushes()static U32getJitRegisterMap(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer stackMap)static U8PointergetJitStackSlots(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metaData, VoidPointer stackMap)static intgetJitStaticMethodResolvePushes()static I16getJitTotalFrameSize(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer md)static intgetJitVirtualMethodResolvePushes()static U8getNextDescriptionBit(U8Pointer jitDescriptionCursor)static U8PointergetNextDescriptionCursor(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metadata, VoidPointer stackMap, U8Pointer jitDescriptionCursor)static VoidPointergetNextInlinedCallSite(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, VoidPointer inlinedCallSite)static UDATAPointergetObjectArgScanCursor(WalkState walkState)static UDATAPointergetObjectTempScanCursor(WalkState walkState)static VoidPointergetStackAllocMapFromJitPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC, VoidPointer curStackMap)static VoidPointergetStackMapFromJitPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC)static booleanhasMoreInlinedMethods(VoidPointer inlinedCallSite)static voidjitAddSpilledRegisters(WalkState walkState)static voidjitAddSpilledRegisters(WalkState walkState, VoidPointer stackMap)static voidjitAddSpilledRegistersForDataResolve(WalkState walkState)static voidjitGetMapsFromPC(com.ibm.j9ddr.vm29.pointer.generated.J9JavaVMPointer javaVM, com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer methodMetaData, UDATA jitPC, MethodMetaData.JITMaps maps)static voidmarkClassesInInlineRanges(com.ibm.j9ddr.vm29.pointer.generated.J9JITExceptionTablePointer metaData, WalkState walkState)static voidwalkJITFrameSlotsForInternalPointers(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
-
-