Package ghidra.app.util.bin.format.macho.dyld

# Class DyldCacheLocalSymbolsInfo

java.lang.Object
ghidra.app.util.bin.format.macho.dyld.DyldCacheLocalSymbolsInfo

All Implemented Interfaces:
  `StructConverter`

public class DyldCacheLocalSymbolsInfo extends Object implements StructConverter
Represents a dyld_cache_local_symbols_info structure.

See Also:
  - dyld_cache_format.h

- ## Field Summary

  ### Fields inherited from interface ghidra.app.util.bin.StructConverter

  `ASCII, BYTE, DWORD, IBO32, IBO64, POINTER, QWORD, SLEB128, STRING, ULEB128, UTF16, UTF8, VOID, WORD`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DyldCacheLocalSymbolsInfo(BinaryReader reader, DyldArchitecture architecture, boolean use64bitOffsets)`
  Create a new `DyldCacheLocalSymbolsInfo`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<DyldCacheLocalSymbolsEntry>`
  `getLocalSymbolsEntries()`
  Gets the `List` of `DyldCacheLocalSymbolsEntry`s.
  `List<NList>`
  `getNList()`
  Gets the `List` of `NList`.
  `List<NList>`
  `getNList(long dylibOffset)`
  Gets the `List` of `NList` for the given dylib offset.
  `void`
  `markup(Program program, Address localSymbolsInfoAddr, TaskMonitor monitor, MessageLog log)`
  Marks up this `DyldCacheLocalSymbolsInfo` with data structures and comments.
  `void`
  `parse(MessageLog log, TaskMonitor monitor)`
  Parses the structures referenced by this `DyldCacheLocalSymbolsInfo`.
  `DataType`
  `toDataType()`
  Returns a structure datatype representing the contents of the implementor of this interface.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DyldCacheLocalSymbolsInfo

    public DyldCacheLocalSymbolsInfo(BinaryReader reader, DyldArchitecture architecture, boolean use64bitOffsets) throws IOException
    Create a new `DyldCacheLocalSymbolsInfo`.
    Parameters:
      `reader` - A `BinaryReader` positioned at the start of a DYLD local symbols info
      `architecture` - The `DyldArchitecture`
      `use64bitOffsets` - True if the DYLD local symbol entries use 64-bit dylib offsets; false if they use 32-bit
    Throws:
      `IOException` - if there was an IO-related problem creating the DYLD local symbols info

- ## Method Details

  - ### parse

    public void parse(MessageLog log, TaskMonitor monitor) throws CancelledException
    Parses the structures referenced by this `DyldCacheLocalSymbolsInfo`.
    Parameters:
      `log` - The log
      `monitor` - A cancellable task monitor
    Throws:
      `CancelledException` - if the user cancelled the operation

  - ### markup

    public void markup(Program program, Address localSymbolsInfoAddr, TaskMonitor monitor, MessageLog log) throws CancelledException
    Marks up this `DyldCacheLocalSymbolsInfo` with data structures and comments.
    Parameters:
      `program` - The `Program` to mark up
      `localSymbolsInfoAddr` - The `Address` of the `DyldCacheLocalSymbolsInfo`
      `monitor` - A cancellable task monitor
      `log` - The log
    Throws:
      `CancelledException` - if the user cancelled the operation

  - ### getLocalSymbolsEntries

    public List<DyldCacheLocalSymbolsEntry> getLocalSymbolsEntries()
    Gets the `List` of `DyldCacheLocalSymbolsEntry`s.
    Returns:
      The `List` of `DyldCacheLocalSymbolsEntry`

  - ### getNList

    public List<NList> getNList()
    Gets the `List` of `NList`.
    Returns:
      The `List` of `NList`

  - ### getNList

    public List<NList> getNList(long dylibOffset)
    Gets the `List` of `NList` for the given dylib offset.
    Parameters:
      `dylibOffset` - The offset of dylib in the DYLD Cache
    Returns:
      The `List` of `NList` for the given dylib offset

  - ### toDataType

    public DataType toDataType() throws DuplicateNameException, IOException
    Description copied from interface: `StructConverter`
    Returns a structure datatype representing the contents of the implementor of this interface.

    For example, given:

         class A {
             int foo;
             double bar;
         }

    The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

    Specified by:
      `toDataType` in interface `StructConverter`
    Returns:
      returns a structure datatype representing the implementor of this interface
    Throws:
      `DuplicateNameException` - when a datatype of the same name already exists
      `IOException`
    See Also:
      - `StructureDataType`