Class 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 Detail

      • 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 Detail

      • 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.