Class DefinedDataIterator

java.lang.Object
ghidra.program.util.DefinedDataIterator
All Implemented Interfaces:
DataIterator, Iterable<Data>, Iterator<Data>

public class DefinedDataIterator extends Object implements DataIterator
Iterator that visits each defined data instance in the initialized memory of a Program or in the footprint of a specified data element.

Data elements that are nested inside of composites or arrays are visited, not just the parent/containing data element.

  • Method Details

    • byDataType

      public static DefinedDataIterator byDataType(Program program, Predicate<DataType> dataTypePredicate)
      Creates a new iterator that traverses the entire Program's address space, returning data instances that successfully match the predicate.
      Parameters:
      program - Program to search
      dataTypePredicate - Predicate that tests each data instance's DataType
      Returns:
      new iterator
    • byDataType

      public static DefinedDataIterator byDataType(Program program, AddressSetView addresses, Predicate<DataType> dataTypePredicate)
      Creates a new iterator that traverses a portion of the Program's address space, returning data instances that successfully match the predicate.
      Parameters:
      program - Program to search
      addresses - addresses to limit the iteration to
      dataTypePredicate - Predicate that tests each data instance's DataType
      Returns:
      new iterator
    • byDataInstance

      public static DefinedDataIterator byDataInstance(Program program, Predicate<Data> dataInstancePredicate)
      Creates a new iterator that traverses the entire Program's address space, returning data instances that successfully match the predicate.
      Parameters:
      program - Program to search
      dataInstancePredicate - Predicate that tests each data instance's properties
      Returns:
      new iterator
    • definedStrings

      public static DefinedDataIterator definedStrings(Program program)
      Creates a new iterator that traverses the entire Program's address space returning data instances that are strings.
      Parameters:
      program - Ghidra Program to search
      Returns:
      new iterator
    • definedStrings

      public static DefinedDataIterator definedStrings(Program program, AddressSetView addrs)
      Creates a new iterator that traverses a portion of the Program's address space returning data instances that are strings.
      Parameters:
      program - Ghidra Program to search
      addrs - addresses to limit the iteration to
      Returns:
      new iterator
    • definedStrings

      public static DefinedDataIterator definedStrings(Data singleDataInstance)
      Creates a new iterator that traverses the address space of a single data item (ie. a composite or array data instance that needs to be recursed into).
      Parameters:
      singleDataInstance - Data instance
      Returns:
      new iterator
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface DataIterator
      Specified by:
      hasNext in interface Iterator<Data>
    • next

      public Data next()
      Specified by:
      next in interface DataIterator
      Specified by:
      next in interface Iterator<Data>