Class ImagePointer
java.lang.Object
com.ibm.dtfj.image.j9.ImagePointer
- All Implemented Interfaces:
ImagePointer
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionadd
(long offset) Build a new image pointer offset from this one by the given amount.boolean
Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.long
Get the unwrapped address, represented as a Java long.Get the address space to which this pointer belongs.byte
getByteAt
(long index) Get the value at the given offset from this pointer.double
getDoubleAt
(long index) Get the value at the given offset from this pointer.float
getFloatAt
(long index) Get the value at the given offset from this pointer.int
getIntAt
(long index) Get the value at the given offset from this pointer.long
getLongAt
(long index) Get the value at the given offset from this pointer.getPointerAt
(long index) Get the value at the given offset from this pointer.Get the OS-specific properties for this addressshort
getShortAt
(long index) Get the value at the given offset from this pointer.int
hashCode()
Answers an integer hash code for the receiver.boolean
Tests memory execute permission.boolean
Tests memory read/write permission.boolean
isShared()
Tests memory shared permission.
-
Constructor Details
-
ImagePointer
-
-
Method Details
-
getAddress
public long getAddress()Description copied from interface:ImagePointer
Get the unwrapped address, represented as a Java long.
Use caution when comparing addresses, as some addresses may be negative.
Note that, on segmented memory architectures, it may not be possible to represent all addresses accurately as integers.
- Specified by:
getAddress
in interfaceImagePointer
- Returns:
- the unwrapped address, represented as a 64-bit integer.
-
getAddressSpace
Description copied from interface:ImagePointer
Get the address space to which this pointer belongs.- Specified by:
getAddressSpace
in interfaceImagePointer
- Returns:
- the address space to which this pointer belongs.
-
add
Description copied from interface:ImagePointer
Build a new image pointer offset from this one by the given amount.- Specified by:
add
in interfaceImagePointer
- Parameters:
offset
- Offset in bytes.- Returns:
- a new ImagePointer based at getAddress() + offset
-
isExecutable
Description copied from interface:ImagePointer
Tests memory execute permission.- Specified by:
isExecutable
in interfaceImagePointer
- Returns:
- true if this memory address is within an executable page.
- Throws:
DataUnavailable
-
isReadOnly
Description copied from interface:ImagePointer
Tests memory read/write permission.- Specified by:
isReadOnly
in interfaceImagePointer
- Returns:
- true if this memory address is read-only. False otherwise.
- Throws:
DataUnavailable
-
getProperties
Description copied from interface:ImagePointer
Get the OS-specific properties for this address- Specified by:
getProperties
in interfaceImagePointer
- Returns:
- a table of OS-specific properties for this address.
Values which are commonly available include
- "readable" -- whether the memory address can be read from
- "writable" -- whether the memory address can be written to
- "executable" -- whether data in the memory address can be executed
-
getPointerAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer. To determine the number of bytes to skip after this call to read the next value, useImageProcess.getPointerSize()
. Note: to create an ImagePointer using an absolute address usecom.ibm.dtfj.image.ImageAddressSpace.getPointer()
- Specified by:
getPointerAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 32 or 64-bit pointer stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted- See Also:
-
getLongAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer.- Specified by:
getLongAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 64-bit long stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted
-
getIntAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer.- Specified by:
getIntAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 32-bit int stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted
-
getShortAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer.- Specified by:
getShortAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 16-bit short stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted
-
getByteAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer.- Specified by:
getByteAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 8-bit byte stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted
-
getFloatAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer.- Specified by:
getFloatAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 32-bit float stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted
-
getDoubleAt
Description copied from interface:ImagePointer
Get the value at the given offset from this pointer.- Specified by:
getDoubleAt
in interfaceImagePointer
- Parameters:
index
- an offset (in bytes) from the current position- Returns:
- the 64-bit double stored at getAddress() + index
- Throws:
MemoryAccessException
- if the memory cannot be readCorruptDataException
- if the memory should be in the image, but is missing or corrupted
-
equals
Description copied from class:java.lang.Object
Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison. The implementation in Object answers true only if the argument is the exact same object as the receiver (==).- Specified by:
equals
in interfaceImagePointer
- Overrides:
equals
in classObject
- Parameters:
obj
-- Returns:
- True obj refers to the same Image Pointer in the image
- See Also:
-
hashCode
public int hashCode()Description copied from class:java.lang.Object
Answers an integer hash code for the receiver. Any two objects which answertrue
when passed to.equals
must answer the same value for this method.- Specified by:
hashCode
in interfaceImagePointer
- Overrides:
hashCode
in classObject
- Returns:
- the receiver's hash.
- See Also:
-