Package ghidra.program.model.mem
Class MemoryBlockStub
- java.lang.Object
-
- ghidra.program.model.mem.MemoryBlockStub
-
- All Implemented Interfaces:
MemoryBlock,java.io.Serializable,java.lang.Comparable<MemoryBlock>
public class MemoryBlockStub extends java.lang.Object implements MemoryBlock
MemoryBlockStub can be extended for use by tests. It throws an UnsupportedOperationException for all methods in the MemoryBlock interface. Any method that is needed for your test can then be overridden so it can provide its own test implementation and return value.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface ghidra.program.model.mem.MemoryBlock
EXECUTE, EXTERNAL_BLOCK_NAME, READ, VOLATILE, WRITE
-
-
Constructor Summary
Constructors Constructor Description MemoryBlockStub()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(MemoryBlock o)booleancontains(Address addr)Return whether addr is contained in this block.bytegetByte(Address addr)Returns the byte at the given address in this block.intgetBytes(Address addr, byte[] b)Tries to get b.length bytes from this block at the given address.intgetBytes(Address addr, byte[] b, int off, int len)Tries to get len bytes from this block at the given address and put them into the given byte array at the specified offet.java.lang.StringgetComment()Get the comment associated with this block.java.io.InputStreamgetData()Get memory data in the form of an InputStream.AddressgetEnd()Return the end address of this block.java.lang.StringgetName()Get the name of this blockintgetPermissions()Returns block permissions as a bit mask.longgetSize()Get the number of bytes in this block.java.util.List<MemoryBlockSourceInfo>getSourceInfos()Returns a list ofMemoryBlockSourceInfoobjects for this block.java.lang.StringgetSourceName()Get the name of the source of this memory block.AddressgetStart()Return the starting address for this block.MemoryBlockTypegetType()Get the type for this block: TYPE_DEFAULT, TYPE_OVERLAY, TYPE_BIT_MAPPED, or TYPE_BYTE_MAPPEDbooleanisExecute()Returns the value of the execute property associated with this blockbooleanisInitialized()Return whether this block has been initialized.booleanisLoaded()Returns true if this memory block is a real loaded block (i.e.booleanisMapped()Returns true if this is either a bit-mapped or byte-mapped blockbooleanisRead()Returns the value of the read property associated with this blockbooleanisVolatile()Returns the value of the volatile property associated with this block.booleanisWrite()Returns the value of the write property associated with this blockvoidputByte(Address addr, byte b)Puts the given byte at the given address in this block.intputBytes(Address addr, byte[] b)Tries to put b.length bytes from the specified byte array to this block.intputBytes(Address addr, byte[] b, int off, int len)Tries to put len bytes from the specified byte array to this block.voidsetComment(java.lang.String comment)Set the comment associated with this block.voidsetExecute(boolean e)Sets the execute property associated with this block.voidsetName(java.lang.String name)Set the name for this block.voidsetPermissions(boolean read, boolean write, boolean execute)Sets the read, write, execute permissions on this blockvoidsetRead(boolean r)Sets the read property associated with this block.voidsetSourceName(java.lang.String sourceName)Sets the name of the source file that provided the data.voidsetVolatile(boolean v)Sets the volatile property associated with this block.voidsetWrite(boolean w)Sets the write property associated with this block.
-
-
-
Method Detail
-
compareTo
public int compareTo(MemoryBlock o)
- Specified by:
compareToin interfacejava.lang.Comparable<MemoryBlock>
-
getPermissions
public int getPermissions()
Description copied from interface:MemoryBlockReturns block permissions as a bit mask. Permission bits defined as READ, WRITE, EXECUTE and VOLATILE- Specified by:
getPermissionsin interfaceMemoryBlock
-
getData
public java.io.InputStream getData()
Description copied from interface:MemoryBlockGet memory data in the form of an InputStream. Null is returned for thos memory blocks which have no data.- Specified by:
getDatain interfaceMemoryBlock
-
contains
public boolean contains(Address addr)
Description copied from interface:MemoryBlockReturn whether addr is contained in this block.- Specified by:
containsin interfaceMemoryBlock- Parameters:
addr- address
-
getStart
public Address getStart()
Description copied from interface:MemoryBlockReturn the starting address for this block.- Specified by:
getStartin interfaceMemoryBlock- Returns:
- block's start address
-
getEnd
public Address getEnd()
Description copied from interface:MemoryBlockReturn the end address of this block.- Specified by:
getEndin interfaceMemoryBlock- Returns:
- end address of the block
-
getSize
public long getSize()
Description copied from interface:MemoryBlockGet the number of bytes in this block.- Specified by:
getSizein interfaceMemoryBlock- Returns:
- number of bytes in the block
-
getName
public java.lang.String getName()
Description copied from interface:MemoryBlockGet the name of this block- Specified by:
getNamein interfaceMemoryBlock
-
setName
public void setName(java.lang.String name) throws DuplicateNameException, LockExceptionDescription copied from interface:MemoryBlockSet the name for this block.- Specified by:
setNamein interfaceMemoryBlock- Parameters:
name- the new name for this block.- Throws:
DuplicateNameExceptionLockException- renaming an Overlay block without exclusive access
-
getComment
public java.lang.String getComment()
Description copied from interface:MemoryBlockGet the comment associated with this block.- Specified by:
getCommentin interfaceMemoryBlock
-
setComment
public void setComment(java.lang.String comment)
Description copied from interface:MemoryBlockSet the comment associated with this block.- Specified by:
setCommentin interfaceMemoryBlock- Parameters:
comment- the comment to associate with this block.
-
isRead
public boolean isRead()
Description copied from interface:MemoryBlockReturns the value of the read property associated with this block- Specified by:
isReadin interfaceMemoryBlock
-
setRead
public void setRead(boolean r)
Description copied from interface:MemoryBlockSets the read property associated with this block.- Specified by:
setReadin interfaceMemoryBlock- Parameters:
r- the value to set the read property to.
-
isWrite
public boolean isWrite()
Description copied from interface:MemoryBlockReturns the value of the write property associated with this block- Specified by:
isWritein interfaceMemoryBlock
-
setWrite
public void setWrite(boolean w)
Description copied from interface:MemoryBlockSets the write property associated with this block.- Specified by:
setWritein interfaceMemoryBlock- Parameters:
w- the value to set the write property to.
-
isExecute
public boolean isExecute()
Description copied from interface:MemoryBlockReturns the value of the execute property associated with this block- Specified by:
isExecutein interfaceMemoryBlock
-
setExecute
public void setExecute(boolean e)
Description copied from interface:MemoryBlockSets the execute property associated with this block.- Specified by:
setExecutein interfaceMemoryBlock- Parameters:
e- the value to set the execute property to.
-
setPermissions
public void setPermissions(boolean read, boolean write, boolean execute)Description copied from interface:MemoryBlockSets the read, write, execute permissions on this block- Specified by:
setPermissionsin interfaceMemoryBlock- Parameters:
read- the read permissionwrite- the write permissionexecute- the execute permission
-
isVolatile
public boolean isVolatile()
Description copied from interface:MemoryBlockReturns the value of the volatile property associated with this block. This attribute is generally associated with block of I/O regions of memory.- Specified by:
isVolatilein interfaceMemoryBlock
-
setVolatile
public void setVolatile(boolean v)
Description copied from interface:MemoryBlockSets the volatile property associated with this block.- Specified by:
setVolatilein interfaceMemoryBlock- Parameters:
v- the value to set the volatile property to.
-
getSourceName
public java.lang.String getSourceName()
Description copied from interface:MemoryBlockGet the name of the source of this memory block.- Specified by:
getSourceNamein interfaceMemoryBlock- Returns:
- source name
-
setSourceName
public void setSourceName(java.lang.String sourceName)
Description copied from interface:MemoryBlockSets the name of the source file that provided the data.- Specified by:
setSourceNamein interfaceMemoryBlock- Parameters:
sourceName- the name of the source file.
-
getByte
public byte getByte(Address addr) throws MemoryAccessException
Description copied from interface:MemoryBlockReturns the byte at the given address in this block.- Specified by:
getBytein interfaceMemoryBlock- Parameters:
addr- the address.- Throws:
MemoryAccessException- if any of the requested bytes are uninitialized.
-
getBytes
public int getBytes(Address addr, byte[] b) throws MemoryAccessException
Description copied from interface:MemoryBlockTries to get b.length bytes from this block at the given address. May return fewer bytes if the requested length is beyond the end of the block.- Specified by:
getBytesin interfaceMemoryBlock- Parameters:
addr- the address from which to get the bytes.b- the byte array to populate.- Returns:
- the number of bytes actually populated.
- Throws:
MemoryAccessException- if any of the requested bytes are uninitialized.
-
getBytes
public int getBytes(Address addr, byte[] b, int off, int len) throws MemoryAccessException
Description copied from interface:MemoryBlockTries to get len bytes from this block at the given address and put them into the given byte array at the specified offet. May return fewer bytes if the requested length is beyond the end of the block.- Specified by:
getBytesin interfaceMemoryBlock- Parameters:
addr- the address from which to get the bytes.b- the byte array to populate.off- the offset into the byte array.len- the number of bytes to get.- Returns:
- the number of bytes actually populated.
- Throws:
MemoryAccessException- if any of the requested bytes are uninitialized.
-
putByte
public void putByte(Address addr, byte b) throws MemoryAccessException
Description copied from interface:MemoryBlockPuts the given byte at the given address in this block.- Specified by:
putBytein interfaceMemoryBlock- Parameters:
addr- the address.- Throws:
MemoryAccessException- if the block is uninitialized
-
putBytes
public int putBytes(Address addr, byte[] b) throws MemoryAccessException
Description copied from interface:MemoryBlockTries to put b.length bytes from the specified byte array to this block. All the bytes may not be put if the requested length is beyond the end of the block.- Specified by:
putBytesin interfaceMemoryBlock- Parameters:
addr- the address of where to put the bytes.b- the byte array containing the bytes to write.- Returns:
- the number of bytes actually written.
- Throws:
MemoryAccessException- if the block is uninitialized
-
putBytes
public int putBytes(Address addr, byte[] b, int off, int len) throws MemoryAccessException
Description copied from interface:MemoryBlockTries to put len bytes from the specified byte array to this block. All the bytes may not be written if the requested length is beyond the end of the block.- Specified by:
putBytesin interfaceMemoryBlock- Parameters:
addr- the address of where to put the bytes.b- the byte array containing the bytes to write.off- the offset into the byte array.len- the number of bytes to write.- Returns:
- the number of bytes actually written.
- Throws:
MemoryAccessException- if the block is uninitialized
-
getType
public MemoryBlockType getType()
Description copied from interface:MemoryBlockGet the type for this block: TYPE_DEFAULT, TYPE_OVERLAY, TYPE_BIT_MAPPED, or TYPE_BYTE_MAPPED- Specified by:
getTypein interfaceMemoryBlock
-
isInitialized
public boolean isInitialized()
Description copied from interface:MemoryBlockReturn whether this block has been initialized.- Specified by:
isInitializedin interfaceMemoryBlock
-
isMapped
public boolean isMapped()
Description copied from interface:MemoryBlockReturns true if this is either a bit-mapped or byte-mapped block- Specified by:
isMappedin interfaceMemoryBlock
-
isLoaded
public boolean isLoaded()
Description copied from interface:MemoryBlockReturns true if this memory block is a real loaded block (i.e. RAM) and not a special block containing file header data such as debug sections.- Specified by:
isLoadedin interfaceMemoryBlock- Returns:
- true if this is a loaded block and not a "special" block such as a file header.
-
getSourceInfos
public java.util.List<MemoryBlockSourceInfo> getSourceInfos()
Description copied from interface:MemoryBlockReturns a list ofMemoryBlockSourceInfoobjects for this block. A block may consist of multiple sequences of bytes from different sources. Each such source of bytes is described by its respective SourceInfo object. Blocks may have multiple sources after two or more memory blocks have been joined together and the underlying byte sources can't be joined.- Specified by:
getSourceInfosin interfaceMemoryBlock- Returns:
- a list of SourceInfo objects, one for each different source of bytes in this block.
-
-