Class StubListing

java.lang.Object
ghidra.program.model.listing.StubListing
All Implemented Interfaces:
Listing

public class StubListing extends Object implements Listing
ListingStub can be extended for use by tests. It throws an UnsupportedOperationException for all methods in the Listing interface. Any method that is needed for your test can then be overridden so it can provide its own test implementation and return value.
  • Constructor Details

    • StubListing

      public StubListing()
  • Method Details

    • getCodeUnitAt

      public CodeUnit getCodeUnitAt(Address addr)
      Description copied from interface: Listing
      get the code unit that starts at the given address.
      Specified by:
      getCodeUnitAt in interface Listing
      Parameters:
      addr - the address to look for a codeUnit.
      Returns:
      the codeUnit that begins at the given address
    • getCodeUnitContaining

      public CodeUnit getCodeUnitContaining(Address addr)
      Description copied from interface: Listing
      get the code unit that contains the given address.
      Specified by:
      getCodeUnitContaining in interface Listing
      Parameters:
      addr - the address to look for a codeUnit.
      Returns:
      the codeUnit that contains the given address
    • getCodeUnitAfter

      public CodeUnit getCodeUnitAfter(Address addr)
      Description copied from interface: Listing
      get the next code unit that starts an an address that is greater than the given address. The search will include instructions, defined data, and undefined data.
      Specified by:
      getCodeUnitAfter in interface Listing
      Parameters:
      addr - the address from which to search forward.
      Returns:
      the next CodeUnit found while searching forward from addr or null if none found.
    • getCodeUnitBefore

      public CodeUnit getCodeUnitBefore(Address addr)
      Description copied from interface: Listing
      get the next code unit that starts at an address that is less than the given address. The search will include instructions, defined data, and undefined data.
      Specified by:
      getCodeUnitBefore in interface Listing
      Parameters:
      addr - the address from which to search backwards.
      Returns:
      The first codeUnit found while searching backwards from addr or null if none found.
    • getCodeUnitIterator

      public CodeUnitIterator getCodeUnitIterator(String property, boolean forward)
      Description copied from interface: Listing
      Get an iterator that contains all code units in the program which have the specified property type defined. Standard property types are defined in the CodeUnit class. The property types are: EOL_COMMENT, PRE_COMMENT, POST_COMMENT, USER_REFERENCE, MNEMONIC_REFERENCE, VALUE_REFERENCE. Property types can also be user defined.
      Specified by:
      getCodeUnitIterator in interface Listing
      Parameters:
      property - the name of the property type.
      forward - true means get iterator in forward direction
      Returns:
      a CodeUnitIterator that returns all code units from the indicated start address that have the specified property type defined.
    • getCodeUnitIterator

      public CodeUnitIterator getCodeUnitIterator(String property, Address addr, boolean forward)
      Description copied from interface: Listing
      Get an iterator that contains the code units which have the specified property type defined. Only code units at an address greater than or equal to the specified start address will be returned by the iterator. If the start address is null then check the entire program. Standard property types are defined in the CodeUnit class. The property types are: EOL_COMMENT, PRE_COMMENT, POST_COMMENT, USER_REFERENCE, MNEMONIC_REFERENCE, VALUE_REFERENCE. Property types can also be user defined.
      Specified by:
      getCodeUnitIterator in interface Listing
      Parameters:
      property - the name of the property type. (EOL_COMMENT, PRE_COMMENT, POST_COMMENT, USER_REFERENCE, MNEMONIC_REFERENCE, VALUE_REFERENCE)
      addr - the start address
      forward - true means get iterator in forward direction
      Returns:
      a CodeUnitIterator that returns all code units from the indicated start address that have the specified property type defined.
    • getCodeUnitIterator

      public CodeUnitIterator getCodeUnitIterator(String property, AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get an iterator that contains the code units which have the specified property type defined. Only code units starting within the address set will be returned by the iterator. If the address set is null then check the entire program. Standard property types are defined in the CodeUnit class.
      Specified by:
      getCodeUnitIterator in interface Listing
      Parameters:
      property - the name of the property type.
      addrSet - the address set
      forward - true means get iterator in forward direction
      Returns:
      a CodeUnitIterator that returns all code units from the indicated address set that have the specified property type defined.
    • getCommentCodeUnitIterator

      public CodeUnitIterator getCommentCodeUnitIterator(int commentType, AddressSetView addrSet)
      Description copied from interface: Listing
      Get a forward code unit iterator over code units that have the specified comment type.
      Specified by:
      getCommentCodeUnitIterator in interface Listing
      Parameters:
      commentType - type defined in CodeUnit
      addrSet - address set
      Returns:
      a CodeUnitIterator that returns all code units from the indicated address set that have the specified comment type defined
    • getCommentAddressIterator

      public AddressIterator getCommentAddressIterator(int commentType, AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get a forward iterator over addresses that have the specified comment type.
      Specified by:
      getCommentAddressIterator in interface Listing
      Parameters:
      commentType - type defined in CodeUnit
      addrSet - address set
      forward - true to iterator from lowest address to highest, false highest to lowest
      Returns:
      an AddressIterator that returns all addresses from the indicated address set that have the specified comment type defined
    • getCommentAddressIterator

      public AddressIterator getCommentAddressIterator(AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get a forward iterator over addresses that have any type of comment.
      Specified by:
      getCommentAddressIterator in interface Listing
      Parameters:
      addrSet - address set
      forward - true to iterator from lowest address to highest, false highest to lowest
      Returns:
      an AddressIterator that returns all addresses from the indicated address set that have any type of comment.
    • getComment

      public String getComment(int commentType, Address address)
      Description copied from interface: Listing
      Get the comment for the given type at the specified address.
      Specified by:
      getComment in interface Listing
      Parameters:
      commentType - either EOL_COMMENT, PRE_COMMENT, POST_COMMENT, PLATE_COMMENT, or REPEATABLE_COMMENT
      address - the address of the comment.
      Returns:
      the comment string of the appropriate type or null if no comment of that type exists for this code unit
    • setComment

      public void setComment(Address address, int commentType, String comment)
      Description copied from interface: Listing
      Set the comment for the given comment type at the specified address.
      Specified by:
      setComment in interface Listing
      Parameters:
      address - the address of the comment.
      commentType - either EOL_COMMENT, PRE_COMMENT, POST_COMMENT, PLATE_COMMENT, or REPEATABLE_COMMENT
      comment - comment to set at the address
    • getCodeUnits

      public CodeUnitIterator getCodeUnits(boolean forward)
      Description copied from interface: Listing
      get a CodeUnit iterator that will iterate over the entire address space.
      Specified by:
      getCodeUnits in interface Listing
      Parameters:
      forward - true means get iterator in forward direction
      Returns:
      a CodeUnitIterator in forward direction
    • getCodeUnits

      public CodeUnitIterator getCodeUnits(Address addr, boolean forward)
      Description copied from interface: Listing
      Returns an iterator of the code units in this listing (in proper sequence), starting at the specified address. The specified address indicates the first code unit that would be returned by an initial call to the next method. An initial call to the previous method would return the code unit with an address less than the specified address.

      Specified by:
      getCodeUnits in interface Listing
      Parameters:
      addr - the start address of the iterator.
      forward - true means get iterator in forward direction
      Returns:
      a CodeUnitIterator positioned just before addr.
    • getCodeUnits

      public CodeUnitIterator getCodeUnits(AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get an iterator over the address range(s). Only code units whose start addresses are contained in the given address set will be returned by the iterator.
      Specified by:
      getCodeUnits in interface Listing
      Parameters:
      addrSet - the AddressRangeSet to iterate over (required).
      forward - true means get iterator in forward direction
      Returns:
      a CodeUnitIterator that is restricted to the give AddressRangeSet.
    • getInstructionAt

      public Instruction getInstructionAt(Address addr)
      Description copied from interface: Listing
      get the Instruction that starts at the given address. If no Instruction has been defined to start at that address, return null.
      Specified by:
      getInstructionAt in interface Listing
      Parameters:
      addr - the address to check for the start of an instruction
      Returns:
      the Instruction object that starts at addr; or null if no Instructions starts at addr.
    • getInstructionContaining

      public Instruction getInstructionContaining(Address addr)
      Description copied from interface: Listing
      get the Instruction that contains the given address. If an Instruction is defined that contains that address, it will be returned. Otherwise, null will be returned.
      Specified by:
      getInstructionContaining in interface Listing
      Parameters:
      addr - the address to check for containment in an Instruction.
      Returns:
      the Instruction object that contains addr; or null if no Instructions contain addr.
    • getInstructionAfter

      public Instruction getInstructionAfter(Address addr)
      Description copied from interface: Listing
      get the closest Instruction that starts at an address that is greater than the given address.
      Specified by:
      getInstructionAfter in interface Listing
      Parameters:
      addr - The address at which to begin the forward search.
      Returns:
      the next Instruction whose starting address is greater than addr.
    • getInstructionBefore

      public Instruction getInstructionBefore(Address addr)
      Description copied from interface: Listing
      get the closest Instruction that starts at an address that is less than the given address.
      Specified by:
      getInstructionBefore in interface Listing
      Parameters:
      addr - The address at which to begin the backward search.
      Returns:
      the closest Instruction whose starting address is less than addr.
    • getInstructions

      public InstructionIterator getInstructions(boolean forward)
      Description copied from interface: Listing
      get an Instruction iterator that will iterate over the entire address space.
      Specified by:
      getInstructions in interface Listing
      Parameters:
      forward - true means get iterator in forward direction
      Returns:
      an InstructionIterator that iterates over all instructions in the program.
    • getInstructions

      public InstructionIterator getInstructions(Address addr, boolean forward)
      Description copied from interface: Listing
      Returns an iterator of the instructions in this listing (in proper sequence), starting at the specified address. The specified address indicates the first instruction that would be returned by an initial call to the next method. An initial call to the previous method would return the instruction with an address less than the specified address.

      Specified by:
      getInstructions in interface Listing
      Parameters:
      addr - the initial position of the iterator
      forward - true means get iterator in forward direction
      Returns:
      an InstructionIterator that iterates over all Instruction objects in the given address range set.
    • getInstructions

      public InstructionIterator getInstructions(AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get an Instruction iterator over the address range(s). Only instructions whose start addresses are contained in the given address set will be returned by the iterator.
      Specified by:
      getInstructions in interface Listing
      Parameters:
      addrSet - the address range set to iterate over.
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all defined and undefined Data objects in the given address range set.
    • getDataAt

      public Data getDataAt(Address addr)
      Description copied from interface: Listing
      get the Data (Defined or Undefined) that starts at the given address.
      Specified by:
      getDataAt in interface Listing
      Parameters:
      addr - the address to check for a Data object.
      Returns:
      the Data object that starts at addr; or null if no Data objects(defined or undefined) start at addr.
    • getDataContaining

      public Data getDataContaining(Address addr)
      Description copied from interface: Listing
      Gets the data object that is at or contains the given address or null if the address in not in memory or is in an instruction.
      Specified by:
      getDataContaining in interface Listing
      Parameters:
      addr - the address for which to find its containing data element.
      Returns:
      the Data object containing the given address or null if there is no data that contains the address.
    • getDataAfter

      public Data getDataAfter(Address addr)
      Description copied from interface: Listing
      get the closest Data object that starts at an address that is greater than the given address.
      Specified by:
      getDataAfter in interface Listing
      Parameters:
      addr - the address at which to begin the forward search.
      Returns:
      the next Data object whose starting address is greater than addr.
    • getDataBefore

      public Data getDataBefore(Address addr)
      Description copied from interface: Listing
      get the closest Data object that starts at an address that is less than the given address.
      Specified by:
      getDataBefore in interface Listing
      Parameters:
      addr - The address at which to begin the backward search.
      Returns:
      the closest Data object whose starting address is less than addr.
    • getData

      public DataIterator getData(boolean forward)
      Description copied from interface: Listing
      get a Data iterator that will iterate over the entire address space; returning both defined and undefined Data objects.
      Specified by:
      getData in interface Listing
      Parameters:
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all defined and undefined Data object in the program.
    • getData

      public DataIterator getData(Address addr, boolean forward)
      Description copied from interface: Listing
      Returns an iterator of the data in this listing (in proper sequence), starting at the specified address. The specified address indicates the first Data that would be returned by an initial call to the next method. An initial call to the previous method would return the Data with an address less than the specified address.

      Specified by:
      getData in interface Listing
      Parameters:
      addr - the initial position of the iterator
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all Data objects in the given address range set.
    • getData

      public DataIterator getData(AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get an iterator over the address range(s). Only data whose start addresses are contained in the given address set will be returned by the iterator.
      Specified by:
      getData in interface Listing
      Parameters:
      addrSet - the address range set to iterate over.
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all defined and undefined Data objects in the given address range set.
    • getDefinedDataAt

      public Data getDefinedDataAt(Address addr)
      Description copied from interface: Listing
      get the Data (defined) object that starts at the given address. If no Data object is defined at that address, then return null.
      Specified by:
      getDefinedDataAt in interface Listing
      Parameters:
      addr - The address to check for defined Data.
      Returns:
      a Data object that starts at addr, or null if no Data object has been defined to start at addr.
    • getDefinedDataContaining

      public Data getDefinedDataContaining(Address addr)
      Description copied from interface: Listing
      get the Data object that starts at the given address. If no Data objects have been defined that contain that address, then return null.
      Specified by:
      getDefinedDataContaining in interface Listing
      Parameters:
      addr - the address to check for containment in a defined Data object.
      Returns:
      the defined Data object containing addr.
    • getDefinedDataAfter

      public Data getDefinedDataAfter(Address addr)
      Description copied from interface: Listing
      get the defined Data object that starts at an address that is greater than the given address.
      Specified by:
      getDefinedDataAfter in interface Listing
      Parameters:
      addr - the address at which to begin the forward search.
      Returns:
      the next defined Data object whose starting address is greater than addr.
    • getDefinedDataBefore

      public Data getDefinedDataBefore(Address addr)
      Description copied from interface: Listing
      get the closest defined Data object that starts at an address that is less than the given address.
      Specified by:
      getDefinedDataBefore in interface Listing
      Parameters:
      addr - The address at which to begin the backward search.
      Returns:
      the closest defined Data object whose starting address is less than addr.
    • getDefinedData

      public DataIterator getDefinedData(boolean forward)
      Description copied from interface: Listing
      get a Data iterator that will iterate over the entire address space; returning only defined Data objects.
      Specified by:
      getDefinedData in interface Listing
      Parameters:
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all defined Data objects in the program.
    • getDefinedData

      public DataIterator getDefinedData(Address addr, boolean forward)
      Description copied from interface: Listing
      Returns an iterator of the defined data in this listing (in proper sequence), starting at the specified address. The specified address indicates the first defined Data that would be returned by an initial call to the next method. An initial call to the previous method would return the defined Data with an address less than the specified address.

      Specified by:
      getDefinedData in interface Listing
      Parameters:
      addr - the initial position of the iterator
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all defined Data objects in the given address range set.
    • getDefinedData

      public DataIterator getDefinedData(AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get an iterator over the address range(s). Only defined data whose start addresses are contained in the given address set will be returned by the iterator.
      Specified by:
      getDefinedData in interface Listing
      Parameters:
      addrSet - the address range set to iterate over.
      forward - true means get iterator in forward direction
      Returns:
      a DataIterator that iterates over all defined Data objects in the given address range set.
    • getUndefinedDataAt

      public Data getUndefinedDataAt(Address addr)
      Description copied from interface: Listing
      get the Data (undefined) object that starts at the given address.
      Specified by:
      getUndefinedDataAt in interface Listing
      Parameters:
      addr - The address to check for undefined data.
      Returns:
      a default DataObject if bytes exist at addr and nothing has been defined to exist there. Otherwise returns null.
    • getUndefinedDataAfter

      public Data getUndefinedDataAfter(Address addr, TaskMonitor monitor)
      Description copied from interface: Listing
      Get the undefined Data object that starts at an address that is greater than the given address. This operation can be slow for large programs so a TaskMonitor is required.
      Specified by:
      getUndefinedDataAfter in interface Listing
      Parameters:
      addr - the address at which to begin the forward search.
      monitor - a task monitor allowing this operation to be cancelled
      Returns:
      the next undefined Data object whose starting address is greater than addr.
    • getFirstUndefinedData

      public Data getFirstUndefinedData(AddressSetView set, TaskMonitor monitor)
      Description copied from interface: Listing
      Get the undefined Data object that falls within the set. This operation can be slow for large programs so a TaskMonitor is required.
      Specified by:
      getFirstUndefinedData in interface Listing
      Parameters:
      set - the addressSet at which to find the first undefined address.
      monitor - a task monitor allowing this operation to be cancelled
      Returns:
      the next undefined Data object whose starting address falls within the addresSet.
    • getUndefinedDataBefore

      public Data getUndefinedDataBefore(Address addr, TaskMonitor monitor)
      Description copied from interface: Listing
      get the closest undefined Data object that starts at an address that is less than the given address. This operation can be slow for large programs so a TaskMonitor is required.
      Specified by:
      getUndefinedDataBefore in interface Listing
      Parameters:
      addr - The address at which to begin the backward search.
      monitor - a task monitor allowing this operation to be cancelled
      Returns:
      the closest undefined Data object whose starting address is less than addr.
    • getUndefinedRanges

      public AddressSetView getUndefinedRanges(AddressSetView set, boolean initializedMemoryOnly, TaskMonitor monitor) throws CancelledException
      Description copied from interface: Listing
      Get the address set which corresponds to all undefined code units within the specified set of address.
      Specified by:
      getUndefinedRanges in interface Listing
      Parameters:
      set - set of addresses to search
      initializedMemoryOnly - if true set will be constrained to initialized memory areas, if false set will be constrained to all defined memory blocks.
      monitor - task monitor
      Returns:
      address set corresponding to undefined code units
      Throws:
      CancelledException - if monitor cancelled
    • getDefinedCodeUnitAfter

      public CodeUnit getDefinedCodeUnitAfter(Address addr)
      Description copied from interface: Listing
      Returns the next instruction or defined data after the given address;
      Specified by:
      getDefinedCodeUnitAfter in interface Listing
      Parameters:
      addr - the address at which to begin the search
      Returns:
      the next instruction or defined data at an address higher than the given address.
    • getDefinedCodeUnitBefore

      public CodeUnit getDefinedCodeUnitBefore(Address addr)
      Description copied from interface: Listing
      Returns the closest instruction or defined data that starts before the given address.
      Specified by:
      getDefinedCodeUnitBefore in interface Listing
      Parameters:
      addr - the address at which to begin the search
      Returns:
      the closest instruction or defined data at an address below the given address.
    • getCompositeData

      public DataIterator getCompositeData(boolean forward)
      Description copied from interface: Listing
      Get an iterator over all the composite data objects (Arrays, Structures, and Union) in the program.
      Specified by:
      getCompositeData in interface Listing
      Parameters:
      forward - true means get iterator that starts at the minimum address and iterates forward. Otherwise it starts at the maximum address and iterates backwards.
      Returns:
      an iterator over all the composite data objects.
    • getCompositeData

      public DataIterator getCompositeData(Address start, boolean forward)
      Description copied from interface: Listing
      Get an iterator over all the composite data objects (Arrays, Structures, and Union) in the program at or after the given Address.
      Specified by:
      getCompositeData in interface Listing
      Parameters:
      start - start of the iterator
      forward - true means get iterator in forward direction
      Returns:
      an iterator over all the composite data objects starting with the given address.
    • getCompositeData

      public DataIterator getCompositeData(AddressSetView addrSet, boolean forward)
      Description copied from interface: Listing
      Get an iterator over all the composite data objects (Arrays, Structures, and Union) within the specified address set in the program.
      Specified by:
      getCompositeData in interface Listing
      Parameters:
      addrSet - the address set
      forward - true means get iterator in forward direction
      Returns:
      an iterator over all the composite data objects in the given address set.
    • getUserDefinedProperties

      public Iterator<String> getUserDefinedProperties()
      Description copied from interface: Listing
      Returns an iterator over all user defined property names.
      Specified by:
      getUserDefinedProperties in interface Listing
      Returns:
      an iterator over all user defined property names.
    • removeUserDefinedProperty

      public void removeUserDefinedProperty(String propertyName)
      Description copied from interface: Listing
      Removes the entire property from the program
      Specified by:
      removeUserDefinedProperty in interface Listing
      Parameters:
      propertyName - the name of the property to remove.
    • getPropertyMap

      public PropertyMap<?> getPropertyMap(String propertyName)
      Description copied from interface: Listing
      Returns the PropertyMap associated with the given name
      Specified by:
      getPropertyMap in interface Listing
      Parameters:
      propertyName - the property name
      Returns:
      PropertyMap the propertyMap object.
    • createInstruction

      public Instruction createInstruction(Address addr, InstructionPrototype prototype, MemBuffer memBuf, ProcessorContextView context, int forcedLengthOverride) throws CodeUnitInsertionException
      Description copied from interface: Listing
      Creates a new Instruction object at the given address. The specified context is only used to create the associated prototype. It is critical that the context be written immediately after creation of the instruction and must be done with a single set operation on the program context. Once a set context is done on the instruction address, any subsequent context changes will result in a ContextChangeException
      Specified by:
      createInstruction in interface Listing
      Parameters:
      addr - the address at which to create an instruction
      prototype - the InstructionPrototype that describes the type of instruction to create.
      memBuf - buffer that provides the bytes that make up the instruction.
      context - the processor context at this location.
      forcedLengthOverride - instruction byte-length (must be in the range 0..prototype.getLength()). If smaller than the prototype length it must have a value no greater than 7, otherwise an error will be thrown. A value of 0 or greater-than-or-equal the prototype length will be ignored and not impose and override length. The length value must be a multiple of the instruction alignment .
      Returns:
      the newly created instruction.
      Throws:
      CodeUnitInsertionException - thrown if the new Instruction would overlap and existing CodeUnit or the specified length is unsupported.
    • addInstructions

      public AddressSetView addInstructions(InstructionSet instructionSet, boolean overwrite) throws CodeUnitInsertionException
      Description copied from interface: Listing
      Creates a complete set of instructions. A preliminary pass will be made checking for code unit conflicts which will be marked within the instructionSet causing dependent blocks to get pruned.
      Specified by:
      addInstructions in interface Listing
      Parameters:
      instructionSet - the set of instructions to be added. All code unit conflicts will be marked within the instructionSet and associated blocks.
      overwrite - if true, overwrites existing code units.
      Returns:
      the set of addresses over which instructions were actually added to the program. This may differ from the InstructionSet address set if conflict errors occurred. Such conflict errors will be recorded within the InstructionSet and its InstructionBlocks.
      Throws:
      CodeUnitInsertionException - if the instruction set is incompatible with the program memory
    • createData

      public Data createData(Address addr, DataType dataType, int length) throws CodeUnitInsertionException
      Description copied from interface: Listing
      Creates a new defined Data object of a given length at the given address. This ignores the bytes that are present
      Specified by:
      createData in interface Listing
      Parameters:
      addr - the address at which to create a new Data object.
      dataType - the Data Type that describes the type of Data object to create.
      length - the length of the datatype.
      Returns:
      newly created data unit
      Throws:
      CodeUnitInsertionException - thrown if the new Instruction would overlap and existing Instruction or defined data.
    • createData

      public Data createData(Address addr, DataType dataType) throws CodeUnitInsertionException
      Description copied from interface: Listing
      Creates a new defined Data object at the given address. This ignores the bytes that are present
      Specified by:
      createData in interface Listing
      Parameters:
      addr - the address at which to create a new Data object.
      dataType - the Data Type that describes the type of Data object to create.
      Returns:
      newly created data unit
      Throws:
      CodeUnitInsertionException - thrown if the new Instruction would overlap and existing Instruction or defined data.
    • clearCodeUnits

      public void clearCodeUnits(Address startAddr, Address endAddr, boolean clearContext)
      Description copied from interface: Listing
      Clears any code units in the given range returning everything to "db"s, and removing any references in the affected area. Note that the module and fragment structure is unaffected. If part of a code unit is contained in the given address range then the whole code unit will be cleared.
      Specified by:
      clearCodeUnits in interface Listing
      Parameters:
      startAddr - the start address of the area to be cleared.
      endAddr - the end address of the area to be cleared.
      clearContext - clear context register values if true
    • clearCodeUnits

      public void clearCodeUnits(Address startAddr, Address endAddr, boolean clearContext, TaskMonitor monitor) throws CancelledException
      Description copied from interface: Listing
      Clears any code units in the given range returning everything to "db"s, and removing any references in the affected area. Note that the module and fragment structure is unaffected. If part of a code unit is contained in the given address range then the whole code unit will be cleared.
      Specified by:
      clearCodeUnits in interface Listing
      Parameters:
      startAddr - the start address of the area to be cleared.
      endAddr - the end address of the area to be cleared.
      clearContext - clear context register values if true
      monitor - monitor that can be used to cancel the clear operation
      Throws:
      CancelledException - if the operation was cancelled.
    • isUndefined

      public boolean isUndefined(Address start, Address end)
      Description copied from interface: Listing
      Checks if the given ranges consists entirely of undefined data.
      Specified by:
      isUndefined in interface Listing
      Parameters:
      start - The start address of the range to check.
      end - The end address of the range to check.
      Returns:
      boolean true if the given range is in memory and has no instructions or defined data.
    • clearComments

      public void clearComments(Address startAddr, Address endAddr)
      Description copied from interface: Listing
      Clears the comments in the given range.
      Specified by:
      clearComments in interface Listing
      Parameters:
      startAddr - the start address of the range to be cleared
      endAddr - the end address of the range to be cleared
    • clearProperties

      public void clearProperties(Address startAddr, Address endAddr, TaskMonitor monitor) throws CancelledException
      Description copied from interface: Listing
      Clears the properties in the given range.
      Specified by:
      clearProperties in interface Listing
      Parameters:
      startAddr - the start address of the range to be cleared
      endAddr - the end address of the range to be cleared
      monitor - task monitor for cancelling operation.
      Throws:
      CancelledException - if the operation was cancelled.
    • clearAll

      public void clearAll(boolean clearContext, TaskMonitor monitor)
      Description copied from interface: Listing
      Removes all CodeUnits, comments, properties, and references from the listing.
      Specified by:
      clearAll in interface Listing
      Parameters:
      clearContext - if true, also clear any instruction context that has been laid down from previous disassembly.
      monitor - used for tracking progress and cancelling the clear operation.
    • getFragment

      public ProgramFragment getFragment(String treeName, Address addr)
      Description copied from interface: Listing
      Returns the fragment containing the given address.

      Specified by:
      getFragment in interface Listing
      Parameters:
      treeName - name of the tree to search
      addr - the address that is contained within a fragment.
      Returns:
      will return null if the address is not in the program.
    • getModule

      public ProgramModule getModule(String treeName, String name)
      Description copied from interface: Listing
      Returns the module with the given name.

      Specified by:
      getModule in interface Listing
      Parameters:
      treeName - name of the tree to search
      name - the name of the module to find.
      Returns:
      will return null if there is no module with the given name.
    • getDefaultRootModule

      public ProgramModule getDefaultRootModule()
      Description copied from interface: Listing
      Returns the root module for the default program tree. This would be the program tree that has existed the longest.
      Specified by:
      getDefaultRootModule in interface Listing
      Returns:
      the root module for the oldest existing program tree.
    • getFragment

      public ProgramFragment getFragment(String treeName, String name)
      Description copied from interface: Listing
      Returns the fragment with the given name.

      Specified by:
      getFragment in interface Listing
      Parameters:
      treeName - name of the tree to search
      name - the name of the fragment to find.
      Returns:
      will return null if there is no fragment with the given name.
    • createRootModule

      public ProgramModule createRootModule(String treeName) throws DuplicateNameException
      Description copied from interface: Listing
      Create a new tree that will be identified by the given name. By default, the new root module is populated with fragments based on memory blocks. Note that the root module's name is not the same as its tree name. The root module name defaults to the name of the program.
      Specified by:
      createRootModule in interface Listing
      Parameters:
      treeName - name of the tree to search
      Returns:
      root module
      Throws:
      DuplicateNameException - if a tree with the given name already exists
    • getRootModule

      public ProgramModule getRootModule(String treeName)
      Description copied from interface: Listing
      Gets the root module for a tree in this listing.
      Specified by:
      getRootModule in interface Listing
      Parameters:
      treeName - name of tree
      Returns:
      the root module for the listing; returns null if there is no tree rooted at a module with the given name.
    • getRootModule

      public ProgramModule getRootModule(long treeID)
      Description copied from interface: Listing
      Returns the root module of the program tree with the given name;
      Specified by:
      getRootModule in interface Listing
      Parameters:
      treeID - id of the program tree
      Returns:
      the root module of the specified tree.
    • getTreeNames

      public String[] getTreeNames()
      Description copied from interface: Listing
      Get the names of all the trees defined in this listing.
      Specified by:
      getTreeNames in interface Listing
      Returns:
      the names of all program trees defined in the program.
    • removeTree

      public boolean removeTree(String treeName)
      Description copied from interface: Listing
      Remove the tree rooted at the given name.
      Specified by:
      removeTree in interface Listing
      Parameters:
      treeName - the name of the tree to remove.
      Returns:
      true if the tree was removed; return false if this is the last tree for the program; cannot delete the last tree.
    • renameTree

      public void renameTree(String oldName, String newName) throws DuplicateNameException
      Description copied from interface: Listing
      Rename the tree. This method does not change the root module's name only the identifier for the tree.
      Specified by:
      renameTree in interface Listing
      Parameters:
      oldName - old name of the tree
      newName - new name of the tree.
      Throws:
      DuplicateNameException - if newName already exists for a root module
    • getNumCodeUnits

      public long getNumCodeUnits()
      Description copied from interface: Listing
      gets the total number of CodeUnits (Instructions, defined Data, and undefined Data)
      Specified by:
      getNumCodeUnits in interface Listing
      Returns:
      the total number of CodeUnits in the listing.
    • getNumDefinedData

      public long getNumDefinedData()
      Description copied from interface: Listing
      gets the total number of defined Data objects in the listing.
      Specified by:
      getNumDefinedData in interface Listing
      Returns:
      the total number of defined Data objects in the listing.
    • getNumInstructions

      public long getNumInstructions()
      Description copied from interface: Listing
      gets the total number of Instructions in the listing.
      Specified by:
      getNumInstructions in interface Listing
      Returns:
      number of Instructions
    • getDataTypeManager

      public DataTypeManager getDataTypeManager()
      Description copied from interface: Listing
      Get the data type manager for the program.
      Specified by:
      getDataTypeManager in interface Listing
      Returns:
      the datatype manager for the program.
    • createFunction

      public Function createFunction(String name, Address entryPoint, AddressSetView body, SourceType source) throws InvalidInputException, OverlappingFunctionException
      Description copied from interface: Listing
      Create a function with an entry point and a body of addresses.
      Specified by:
      createFunction in interface Listing
      Parameters:
      name - the name of the function to create
      entryPoint - the entry point for the function
      body - the address set that makes up the functions body
      source - the source of this function
      Returns:
      the created function
      Throws:
      InvalidInputException - if the name contains invalid characters
      OverlappingFunctionException - if the given body overlaps with an existing function.
    • createFunction

      public Function createFunction(String name, Namespace nameSpace, Address entryPoint, AddressSetView body, SourceType source) throws InvalidInputException, OverlappingFunctionException
      Description copied from interface: Listing
      Create a function in the specified namespace with an entry point and a body of addresses.
      Specified by:
      createFunction in interface Listing
      Parameters:
      name - the name of the function to create
      nameSpace - the namespace in which to create the function
      entryPoint - the entry point for the function
      body - the address set that makes up the functions body
      source - the source of this function
      Returns:
      the created function
      Throws:
      InvalidInputException - if the name contains invalid characters
      OverlappingFunctionException - if the given body overlaps with an existing function.
    • removeFunction

      public void removeFunction(Address entryPoint)
      Description copied from interface: Listing
      Remove a function a given entry point.
      Specified by:
      removeFunction in interface Listing
      Parameters:
      entryPoint - entry point of function to be removed.
    • getFunctionAt

      public Function getFunctionAt(Address entryPoint)
      Description copied from interface: Listing
      Get a function with a given entry point.
      Specified by:
      getFunctionAt in interface Listing
      Parameters:
      entryPoint - entry point of the function
      Returns:
      function at the entry point
    • getFunctions

      public List<Function> getFunctions(String namespace, String name)
      Description copied from interface: Listing
      Returns a list of all functions with the given name in the given namespace.
      Specified by:
      getFunctions in interface Listing
      Parameters:
      namespace - the namespace to search for functions of the given name. Can be null, in which case it will search the global namespace.
      name - the name of the functions to retrieve.
      Returns:
      a list of all global functions with the given name.
    • getFunctionContaining

      public Function getFunctionContaining(Address addr)
      Description copied from interface: Listing
      Get a function containing an address.
      Specified by:
      getFunctionContaining in interface Listing
      Parameters:
      addr - the address to search.
      Returns:
      function containing this address, null otherwise
    • getExternalFunctions

      public FunctionIterator getExternalFunctions()
      Description copied from interface: Listing
      Get an iterator over all external functions
      Specified by:
      getExternalFunctions in interface Listing
      Returns:
      an iterator over all currently defined external functions.
    • getFunctions

      public FunctionIterator getFunctions(boolean forward)
      Description copied from interface: Listing
      Get an iterator over all functions
      Specified by:
      getFunctions in interface Listing
      Parameters:
      forward - if true functions are return in address order, otherwise backwards address order
      Returns:
      an iterator over all currently defined functions.
    • getFunctions

      public FunctionIterator getFunctions(Address start, boolean forward)
      Description copied from interface: Listing
      Get an iterator over all functions starting at address
      Specified by:
      getFunctions in interface Listing
      Parameters:
      start - the address to start iterating at.
      forward - if true functions are return in address order, otherwise backwards address order
      Returns:
      an iterator over functions
    • getFunctions

      public FunctionIterator getFunctions(AddressSetView asv, boolean forward)
      Description copied from interface: Listing
      Get an iterator over all functions with entry points in the address set.
      Specified by:
      getFunctions in interface Listing
      Parameters:
      asv - the set of addresses to iterator function entry points over.
      forward - if true functions are return in address order, otherwise backwards address order
      Returns:
      an iterator over functions
    • isInFunction

      public boolean isInFunction(Address addr)
      Description copied from interface: Listing
      Check if an address is contained in a function
      Specified by:
      isInFunction in interface Listing
      Parameters:
      addr - address to test
      Returns:
      true if this address is in one or more functions
    • getCommentHistory

      public CommentHistory[] getCommentHistory(Address addr, int commentType)
      Description copied from interface: Listing
      Get the comment history for comments at the given address.
      Specified by:
      getCommentHistory in interface Listing
      Parameters:
      addr - address for comments
      commentType - comment type defined in CodeUnit
      Returns:
      array of comment history records
    • getGlobalFunctions

      public List<Function> getGlobalFunctions(String name)
      Description copied from interface: Listing
      Returns a list of all global functions with the given name.
      Specified by:
      getGlobalFunctions in interface Listing
      Parameters:
      name - the name of the functions to retrieve.
      Returns:
      a list of all global functions with the given name.