java.lang.Object
ghidra.app.plugin.exceptionhandlers.gcc.GccAnalysisClass
ghidra.app.plugin.exceptionhandlers.gcc.structures.gccexcepttable.LSDATypeTable

public class LSDATypeTable extends GccAnalysisClass
Stores addresses of __type_info structures for thrown values. Used by the Unwind routines to determine if a given catch block appropriately handles a given exception-of-type.
  • Constructor Details

    • LSDATypeTable

      public LSDATypeTable(TaskMonitor monitor, Program program, RegionDescriptor region)
      Constructor for a table of references to types that are associated with catch actions.
      Note: The create(Address, Address) method must be called after constructing an LSDATypeTable to associate it with an address before any of its "get..." methods are called.
      Parameters:
      monitor - task monitor to see if the user has cancelled analysis.
      program - the program containing the type table.
      region - the region of the program associated with this type table.
  • Method Details

    • create

      public void create(Address bottom, Address top)
      Create a LSDA Type Table from the bytes between bottom and top. This table is built from bottom-to-top.
      Note: This method must get called before any of the "get..." methods.
      Parameters:
      bottom - the bottom address of the type table
      top - the top address of the type table
    • getTypeInfoAddress

      public Address getTypeInfoAddress(int index)
      Gets the address of the type information from the reference record at the specified index in the table.
      Parameters:
      index - the index (1-based) of the type info table record.
      Returns:
      the address of the type info.
    • getNextAddress

      public Address getNextAddress()
      Gets the address after this type table.
      Returns:
      the next address after this type table or null if this type table hasn't been created at any address yet.