Module openj9.dtfj

Class BufferedMemory

All Implemented Interfaces:
IAddressSpace, IMemory, IProcess

public class BufferedMemory extends AbstractMemory implements IProcess, IAddressSpace
Object representing a single live process model where a section of memory in a the process can be represented in a byte buffer as its source
See Also:
  • Can be used for inspection of the scc, without the need of a core file For example in the following, it is used to inspect romMethods: BufferedMemory memory = new BufferedMemory(ByteOrder.nativeOrder()); IVMData aVMData = VMDataFactory.getVMData((IProcess)memory); //this address denotes the beginning of range of interest, not shown here memory.addMemorySource(new BufferedMemorySource(sourceStartAddress, size)); aVMData.bootstrap("com.ibm.j9ddr.vm29.SomeDebugHandler"); public class SomeDebugHandler { //can fetch this address from a ROMClass Cookie J9ROMClassPointer pointer = J9ROMClassPointer.cast(romStartAddress); J9ROMMethodPointer romMethod = pointer.romMethods(); long dumpFlags = (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) ? 1 : 0; J9BCUtil.j9bcutil_dumpRomMethod(System.out, romMethod, pointer, dumpFlags, J9BCUtil.BCUtil_DumpAnnotations); } Behaviour of the model is not defined for the case where the underlying source's ByteBuffer is modified (address or capacity) during use.