Class ClrMockMemory
- Namespace
- Echo.Platforms.AsmResolver.Emulation.Runtime
- Assembly
- Echo.Platforms.AsmResolver.dll
Provides a block of memory that contains mock data modelling CLR specific data structures.
public class ClrMockMemory : IMemorySpace
- Inheritance
-
ClrMockMemory
- Implements
- Inherited Members
Constructors
ClrMockMemory()
Creates a new instance of the ClrMockMemory block.
public ClrMockMemory()
Properties
AddressRange
Gets the range that this memory space spans.
public AddressRange AddressRange { get; }
Property Value
Fields
Gets the memory assigned for field descriptor structures.
public GenericMockMemory<IFieldDescriptor> Fields { get; }
Property Value
MethodEntryPoints
Gets the memory assigned for method entry points
public GenericMockMemory<IMethodDescriptor> MethodEntryPoints { get; }
Property Value
MethodTables
Gets the memory assigned for method table structures (types).
public GenericMockMemory<ITypeDescriptor> MethodTables { get; }
Property Value
Methods
Gets the memory assigned for method descriptor structures.
public GenericMockMemory<IMethodDescriptor> Methods { get; }
Property Value
Methods
IsValidAddress(long)
Gets a value indicating whether the provided address is a valid address, and can be used to read and/or write to.
public bool IsValidAddress(long address)
Parameters
addresslongThe address to query.
Returns
- bool
trueif the address was valid,falseotherwise.
Read(long, BitVectorSpan)
Copies data at the provided address into the provided buffer.
public void Read(long address, BitVectorSpan buffer)
Parameters
addresslongThe address to start reading at.
bufferBitVectorSpanThe buffer to write into.
Rebase(long)
Relocates the memory to a new base address.
public void Rebase(long baseAddress)
Parameters
baseAddresslongThe new base address.
Write(long, BitVectorSpan)
Writes the provided buffer of data at the provided address.
public void Write(long address, BitVectorSpan buffer)
Parameters
addresslongThe address to start writing at.
bufferBitVectorSpanThe data to write.
Write(long, ReadOnlySpan<byte>)
Writes the provided buffer of data at the provided address.
public void Write(long address, ReadOnlySpan<byte> buffer)
Parameters
addresslongThe address to start writing at.
bufferReadOnlySpan<byte>The data to write.