org.jikesrvm.mm.mminterface
Class DebugUtil

java.lang.Object
  extended by org.jikesrvm.mm.mminterface.DebugUtil
All Implemented Interfaces:
Constants, HeapLayoutConstants, ThinLockConstants, TIBLayoutConstants, SizeConstants

public class DebugUtil
extends Object
implements Constants, Constants

Common debugging utility functions used by various garbage collectors


Field Summary
private static TIB tibForArrayType
           
private static TIB tibForClassType
           
private static TIB tibForPrimitiveType
           
 
Fields inherited from interface org.mmtk.utility.Constants
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING
 
Fields inherited from interface org.jikesrvm.Constants
NOT_REACHED, REFLECTION_FPRS_BITS, REFLECTION_FPRS_MASK, REFLECTION_GPRS_BITS, REFLECTION_GPRS_MASK
 
Fields inherited from interface org.jikesrvm.objectmodel.ThinLockConstants
TL_DEDICATED_U16_OFFSET, TL_DEDICATED_U16_SHIFT, TL_LOCK_COUNT_MASK, TL_LOCK_COUNT_SHIFT, TL_LOCK_COUNT_UNIT, TL_LOCK_ID_MASK, TL_LOCK_ID_SHIFT, TL_NUM_BITS_RC, TL_NUM_BITS_STAT, TL_NUM_BITS_TID, TL_STAT_BIASABLE, TL_STAT_FAT, TL_STAT_MASK, TL_STAT_SHIFT, TL_STAT_THIN, TL_THREAD_ID_MASK, TL_THREAD_ID_SHIFT, TL_UNLOCK_MASK
 
Fields inherited from interface org.jikesrvm.SizeConstants
BITS_IN_BOOLEAN, BITS_IN_DOUBLE, BITS_IN_EXTENT, BITS_IN_FLOAT, BITS_IN_LONG, BITS_IN_OFFSET, BYTES_IN_BOOLEAN, BYTES_IN_DOUBLE, BYTES_IN_EXTENT, BYTES_IN_FLOAT, BYTES_IN_LONG, BYTES_IN_OFFSET, LOG_BITS_IN_BOOLEAN, LOG_BITS_IN_DOUBLE, LOG_BITS_IN_EXTENT, LOG_BITS_IN_FLOAT, LOG_BITS_IN_LONG, LOG_BITS_IN_OFFSET, LOG_BYTES_IN_BOOLEAN, LOG_BYTES_IN_DOUBLE, LOG_BYTES_IN_EXTENT, LOG_BYTES_IN_FLOAT, LOG_BYTES_IN_LONG, LOG_BYTES_IN_OFFSET
 
Fields inherited from interface org.jikesrvm.objectmodel.TIBLayoutConstants
IMT_METHOD_SLOTS, NEEDS_DYNAMIC_LINK, TIB_ARRAY_ELEMENT_TIB_INDEX, TIB_DOES_IMPLEMENT_INDEX, TIB_FIRST_SPECIALIZED_METHOD_INDEX, TIB_FIRST_VIRTUAL_METHOD_INDEX, TIB_INTERFACE_DISPATCH_TABLE_INDEX, TIB_SUPERCLASS_IDS_INDEX, TIB_TYPE_INDEX
 
Fields inherited from interface org.jikesrvm.HeapLayoutConstants
BAD_MAP_COMPRESSION, BOOT_IMAGE_CODE_END, BOOT_IMAGE_CODE_SIZE, BOOT_IMAGE_CODE_START, BOOT_IMAGE_DATA_END, BOOT_IMAGE_DATA_SIZE, BOOT_IMAGE_DATA_START, BOOT_IMAGE_END, BOOT_IMAGE_RMAP_END, BOOT_IMAGE_RMAP_START, MAX_BOOT_IMAGE_RMAP_SIZE, MAXIMUM_MAPPABLE
 
Constructor Summary
DebugUtil()
           
 
Method Summary
static boolean addrInBootImage(Address addr)
           
(package private) static void boot(BootRecord theBootRecord)
           
static void dumpAllThreadStacks()
          Dump all threads & their stacks starting at the frame identified by the threads saved contextRegisters (ip & fp fields).
static void dumpRef(ObjectReference ref)
           
static boolean mappedVMRef(ObjectReference ref)
           
static boolean validObject(Object ref)
          Check if a ref, its tib pointer & type pointer are all in the heap
static boolean validRef(ObjectReference ref)
           
static boolean validType(ObjectReference typeAddress)
          Check if an address appears to point to an instance of RVMType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tibForArrayType

private static TIB tibForArrayType

tibForClassType

private static TIB tibForClassType

tibForPrimitiveType

private static TIB tibForPrimitiveType
Constructor Detail

DebugUtil

public DebugUtil()
Method Detail

boot

static void boot(BootRecord theBootRecord)

validType

public static boolean validType(ObjectReference typeAddress)
Check if an address appears to point to an instance of RVMType

Parameters:
typeAddress - the address to check

dumpAllThreadStacks

public static void dumpAllThreadStacks()
Dump all threads & their stacks starting at the frame identified by the threads saved contextRegisters (ip & fp fields).


validObject

public static boolean validObject(Object ref)
Check if a ref, its tib pointer & type pointer are all in the heap


validRef

public static boolean validRef(ObjectReference ref)

mappedVMRef

public static boolean mappedVMRef(ObjectReference ref)

dumpRef

public static void dumpRef(ObjectReference ref)

addrInBootImage

public static boolean addrInBootImage(Address addr)