# Package ghidra.program.util

package ghidra.program.util

- Related Packages
  Package
  Description
  ghidra.program.util.string
- Class
  Description
  AbstractProgramContext
  AbstractStoredProgramContext
  AddressCorrelation
  Interface representing the address mapping for any means of correlating addresses between a source program and a destination program.
  AddressCorrelationRange
  A simple object that holds an `AddressCorrelation` address range and then name of the correlation.s
  AddressCorrelator
  Interface for address correlation algorithms that can generate an address mapping from one set of program addresses to another.
  AddressEvaluator
  Class for evaluating expressions as an Address.
  AddressExpressionValue
  Address operand values.
  AddressFieldLocation
  The `AddressFieldLocation` class provides specific information about a program location within the ADDRESS field.
  AddressIteratorConverter
  AddressRangeIteratorConverter
  AddressTranslationException
  Exception thrown when an attempt is made to translate an address from one program into an equivalent address in another program.
  AddressTranslator
  AssignedVariableLocation
  AutomaticCommentFieldLocation
  The `AutomaticCommentFieldLocation` class contains specific location information within the automatic comment of an EOL comment field of a CodeUnitLocation object.
  BlockStartLocation
  `BlockStartLocation` provides information about the location (within a program) of an object that represents the start of a memory block.
  BytesFieldLocation
  Provides specific information about the bytes field within a program location.
  ChangeManager
  ProgramEventerface to define event types and the method to generate an event within Program.
  ChangeManagerAdapter
  Empty implementation for a ChangeManager.
  CodeUnitContainer
  CodeUnitLCS
  CodeUnitLocation
  `CodeUnitLocation` provides information about the location in a program within a `CodeUnit`.
  CodeUnitPropertyChangeRecord
  Change record generated when a property on a code unit changes.
  CodeUnitUserDataChangeRecord
  CombinedAddressRangeIterator
  CommentChangeRecord
  Change record for comment changes
  CommentFieldLocation
  The `CommentFieldLocation` class contains specific location information within the COMMENTS field of a CodeUnitLocation object.
  CommentTypeUtils
  ContextEvaluator
  ContextEvaluator provides a callback mechanism for the SymbolicPropogator as code is evaluated.
  ContextEvaluatorAdapter
  Default behavior implementation of ContextEvaluator passed to SymbolicPropogator Override methods to inspect context.
  CyclomaticComplexity
  Class with a utility function to calculate the cyclomatic complexity of a function.
  DataTypeArchiveChangeManager
  Interface to define event types and the method to generate an event within Program.
  DataTypeCleaner
  `DataTypeCleaner` provides a convenient way to clean composite definitions which may be included within a complex datatype which was derived from an source unrelated to a target `DataTypeManager`.
  DefaultAddressTranslator
  DefaultLanguageService
  Default Language service used gather up all the languages that were found during the class search (search was for language providers)
  DefinedDataIterator
  Iterator that visits each defined data instance in the initialized memory of a Program or in the footprint of a specified data element.
  DefinedStringIterator
  Iterator that visits each defined string instance in the initialized memory of a Program or in the footprint of a specified data element.
  DiffUtility
  The `DiffUtility` class provides static methods for getting and creating an object in one program based on an object from another program.
  DiscoverableAddressCorrelator
  AddressCorrelators that want to be discovered by version tracking should implement this interface.
  DividerLocation
  `DividerLocation` provides information about the location (within a program) of an object that represents some kind of a separation.
  DummyListingAddressCorrelation
  EolCommentFieldLocation
  The `EolCommentFieldLocation` class contains specific location information within the EOL comment field of a CodeUnitLocation object.
  EquateInfo
  Class to hold information about an Equate; it is used in a ProgramChangeRecord when an equate is created and when references to the Equate are updated.
  EquateOperandFieldLocation
  A simple version of `OperandFieldLocation` that allows us to store equate information.
  ExternalSymbolResolver
  Moves dangling external function symbols found in the `EXTERNAL/UNKNOWN` namespace into the namespace of the external library that publishes a matching symbol.
  FieldNameFieldLocation
  The `FieldNameFieldLocation` class provides specific information about the Function Name field within a program location.
  FunctionCallFixupFieldLocation
  The `FunctionCallFixupFieldLocation` class provides specific information about the Function call-fixup field within a program location.
  FunctionCallingConventionFieldLocation
  The `FunctionCallingConventionFieldLocation` class provides specific information about the Function Calling Convention field within a program location.
  FunctionChangeRecord
  FunctionChangeRecord.FunctionChangeType
  Specific function changes types for when the ProgramEvent is FUNCTION_CHANGED
  FunctionEndParametersFieldLocation
  The `FunctionEndParametersFieldLocation` class provides a field for the close parenthesis of a function within a program location.
  FunctionInlineFieldLocation
  The `FunctionInlineFieldLocation` class provides specific information about the Function Inline field within a program location.
  FunctionLocation
  `FunctionLocation` provides information about the location in a program within a `Function`.
  FunctionMerge
  FunctionNameFieldLocation
  The `FunctionNameFieldLocation` class provides specific information about the Function Name field within a program location.
  FunctionNoReturnFieldLocation
  The `FunctionNoReturnFieldLocation` class provides specific information about the Function noreturn field within a program location.
  FunctionParameterFieldLocation
  FunctionParameterNameFieldLocation
  A `FunctionSignatureFieldLocation` that indicates the user clicked on a function parameter name.
  FunctionPurgeFieldLocation
  FunctionRepeatableCommentFieldLocation
  The `FunctionRepeatableCommentFieldLocation` class provides specific information about the Function Repeatable Comment field within a program location.
  FunctionReturnTypeFieldLocation
  The `FunctionReturnTypeFieldLocation` class provides specific information about the Function Return Type field within a program location.
  FunctionSignatureFieldLocation
  The `FunctionSignatureFieldLocation` class provides specific information about the Function Signature field within a program location.
  FunctionSignatureSourceFieldLocation
  The `FunctionSignatureFieldLocation` class provides specific information about the Function Signature field within a program location.
  FunctionStartParametersFieldLocation
  The `FunctionStartParametersFieldLocation` class provides a field for the open parenthesis of a function within a program location.
  FunctionTagFieldLocation
  Provides information about the location of an object that represents the tag names assigned to a function.
  FunctionThunkFieldLocation
  The `FunctionThunkFieldLocation` class provides specific information about the Function Thunk field within a program location.
  FunctionUtility
  Utility methods for performing function related actions.
  GhidraProgramUtilities
  GroupPath
  The `GroupPath` is a class to represent a unique path in a tree for a Group.
  GroupView
  Class to define a selection of GroupPath objects.
  IndentFieldLocation
  The `IndentFieldLocation` class contains specific location information within the indent field of a CodeUnitLocation object.
  InstructionMaskValueFieldLocation
  InstructionUtils
  InteriorSelection
  Specifies a selection that consists of components inside a structure.
  LabelFieldLocation
  This class contains specific location information within the label field of a `CodeUnitLocation`
  LanguagePostUpgradeInstructionHandler
  `LanguagePostUpgradeInstructionHandler` provides an abstract implementation of a post language-upgrade instruction modification handler.
  LanguageTranslator
  NOTE: ALL LanguageTranslator CLASSES MUST END IN "LanguageTranslator".
  LanguageTranslatorAdapter
  `LanguageTranslatorAdapter` provides a default language translator behavior which may be extended to provide customized language translations.
  LanguageTranslatorFactory
  `LanguageTranslatorFactory` manages all language translators within Ghidra.
  LanguageTranslatorFactoryMinion
  LinearDataAddressCorrelation
  LinearFunctionAddressCorrelation
  ListingAddressCorrelation
  This is the interface for a correlator that associates addresses from one program with addresses from another program or it can associate addresses from one part of a program with addresses from another part of the same program.
  ListingDiff
  Determines where instructions couldn't be matched and where they differ between sets of addresses as provided by a ListingAddressCorrelation.
  MarkerLocation
  Marker location in the tool navigation bars
  MemoryBlockDiff
  `MemoryBlockDiff` determines the types of differences between two memory blocks.
  MemoryBlockStartFieldLocation
  `BlockStartLocation` provides information about the location (within a program) of an object that represents the start of a memory block.
  MemoryDiff
  `MemoryDiff` determines where the memory differs between two programs as well as the types of differences.
  MemoryRangeDiff
  `MemoryBlockDiff` determines the types of differences between two memory blocks.
  MnemonicFieldLocation
  The `MnemonicFieldLocation` class contains specific location information within the MNEMONIC field of a CodeUnitLocation object.
  MultiAddressIterator
  `MultiAddressIterator` is a class for iterating through multiple address iterators simultaneously.
  MultiAddressRangeIterator
  `MultiAddressRangeIterator` is a class for iterating through multiple address range iterators simultaneously.
  MultiCodeUnitIterator
  `MultiCodeUnitIterator` is a class for iterating through multiple code unit iterators simultaneously.
  OffsetFieldLocation
  Provides specific information about a program location within an offset field
  OffsetFieldType
  The type of offset field
  OldLanguageFactory
  OperandFieldLocation
  The `OperandFieldLocation` class contains specific location information within the OPERAND field of a CodeUnitLocation object.
  ParallelInstructionLocation
  PcodeFieldLocation
  PlateFieldLocation
  The `PlateFieldLocation` class contains specific location information within the Plate field of a CodeUnitLocation object.
  PostCommentFieldLocation
  The `EolCommentFieldLocation` class contains specific location information within the EOL comment field of a CodeUnitLocation object.
  ProgramChangeRecord
  Event data for a DomainObjectChangeEvent generated by a Program.
  ProgramConflictException
  Exception for incompatible programs when comparing programs for differences or when merging program differences.
  ProgramContextImpl
  Implementation for a processor context over the address space
  ProgramDiff
  `ProgramDiff` is a class for comparing two programs and determining where there are differences between them.
  ProgramDiffDetails
  ProgramDiffDetails is used to determine the detailed differences between two programs at a particular address.
  ProgramDiffFilter
  The `ProgramDiffFilter` is used when determining or working with differences between two programs.
  ProgramEvent
  Event types for `Program` changes.
  ProgramLocation
  `ProgramLocation` provides information about a location in a program in the most generic way.
  ProgramLocationComparator
  A comparator for the common fields of `ProgramLocation`
  ProgramMemoryComparator
  `ProgramMemoryComparator` is a class for comparing two programs and determining the address differences between them.
  ProgramMemoryUtil
  `ProgramMemoryUtil` contains some static methods for checking Memory block data.
  ProgramMerge
  `ProgramMerge` is a class for merging the differences between two programs.
  ProgramMergeFilter
  The `ProgramMergeFilter` is used to specify which portions of a program should be merged into another program.
  ProgramMergeManager
  `ProgramMergeManager` is a class for merging the differences between two programs as specified by a `ProgramMergeFilter` and the address ranges to be merged.
  ProgramSelection
  Class to define a selection for a program.
  ProgramTask
  Task for operating on programs.
  ProgramUtilities
  General utility class that provides convenience methods to deal with Program objects.
  RangeMapAdapter
  RefRepeatCommentFieldLocation
  The `RefRepeatCommentFieldLocation` class contains specific location information within the Referenced Repeatable comments of an EOL comment field of a CodeUnitLocation object.
  RegisterFieldLocation
  ProgramLocation for the Register Field.
  RegisterTransitionFieldLocation
  ProgramLocation for the Register Field.
  RegisterValueStore
  This is a generalized class for storing register values over ranges.
  RepeatableCommentFieldLocation
  The `RepeatableCommentFieldLocation` class contains specific location information within the Repeatable comment of an EOL comment field of a CodeUnitLocation object.
  SimpleDiffUtility
  SourceMapFieldLocation
  A `ProgramLocation` for source map information.
  SpaceFieldLocation
  The `SpaceFieldLocation` class contains specific location information within the Space field of a CodeUnitLocation object.
  SpacerFieldLocation
  The `SpacerFieldLocation` class contains specific location information within a spacer field of a CodeUnitLocation object.
  StackDepthFieldLocation
  SubDataFieldLocation
  The `SubDataFieldLocation` class contains specific location information within the Sub-data field of a CodeUnitLocation object.
  SymbolicPropogator
  ThunkedFunctionFieldLocation
  The `ThunkedFunctionFieldLocation` class provides specific information about a thunked function within a program location.
  UserDataChangeRecord
  VariableCommentFieldLocation
  The `VariableCommentFieldLocation` class provides specific information about the stack variable comment field within a program location.
  VariableLocation
  `VariableLocation` provides information about the location on a variable within a `Function`.
  VariableLocFieldLocation
  The `VariableLocFieldLocation` class provides specific information about the stack variable offset field within a program location.
  VariableNameFieldLocation
  The `VariableNameFieldLocation` class provides specific information about the variable name field within a program location.
  VariablesOpenCloseLocation
  ProgramLocation that represents the cursor being on the variables open/close widget
  VariableStorageConflicts
  VariableTypeFieldLocation
  The `VariableTypeFieldLocation` class provides specific information about the variable type field within a program location.
  VariableXRefFieldLocation
  The `VariableXRefFieldLocation` class provides specific information about the variable's cross reference field within a program location.
  VariableXRefHeaderFieldLocation
  VarnodeContext
  XRefFieldLocation
  The `XRefFieldLocation` class contains specific location information within the XREF field of a CodeUnitLocation object.
  XRefHeaderFieldLocation
  The `XRefHeaderFieldLocation` class contains specific location information within the XREF field header that precedes the XREF field locations.