Class MemoryMapDBAdapterV3

java.lang.Object
ghidra.program.database.mem.MemoryMapDBAdapterV3

public class MemoryMapDBAdapterV3 extends Object
MemoryMap adapter for version 3. This version introduces the concept of sub memory blocks and FileBytes
  • Constructor Details

  • Method Details

    • createBlock

      protected MemoryBlockDB createBlock(String name, Address startAddress, long length, int flags, List<ghidra.program.database.mem.SubMemoryBlock> splitBlocks) throws IOException
      Creates a new memory block.
      Parameters:
      name - the name of the block
      startAddress - the start address of the block
      length - the length of the block
      flags - the flags for the block
      splitBlocks - the list of subBlock objects that make up this block
      Returns:
      the new MemoryBlock
      Throws:
      IOException - if a database error occurs
    • createFileBytesBlock

      protected MemoryBlockDB createFileBytesBlock(String name, Address startAddress, long length, FileBytes fileBytes, long offset, int flags) throws IOException, AddressOverflowException
      Creates a new memory block using a FileBytes
      Parameters:
      name - the name of the block
      startAddress - the start address of the block
      length - the length of the block
      fileBytes - the FileBytes object that provides the bytes for this block
      offset - the offset into the FileBytes object
      flags - the flags for the block
      Returns:
      the new MemoryBlock
      Throws:
      IOException - if a database error occurs
      AddressOverflowException - if block length is too large for the underlying space
    • updateSubBlockRecord

      protected void updateSubBlockRecord(DBRecord record) throws IOException
      Updates the sub memory block record.
      Parameters:
      record - the record to update.
      Throws:
      IOException - if a database IO error occurs.