Package ghidra.app.plugin.exceptionhandlers.gcc.structures.gccexcepttable

# Class LSDAActionTable

java.lang.Object
ghidra.app.plugin.exceptionhandlers.gcc.structures.gccexcepttable.LSDAActionTable

public class LSDAActionTable extends Object
Defines the follow-on behavior of how to handle an exception in the context of the exceptions' C++ type.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LSDAActionTable(TaskMonitor monitor, Program program, RegionDescriptor region)`
  Constructor for an action table.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `create(Address address, Address maxAddress)`
  Create an LSDA Action Table from the bytes at `address`.
  `LSDAActionRecord`
  `getActionRecord(int actionIndex)`
  Gets the action record from the table by its index.
  `LSDAActionRecord`
  `getActionRecordAtOffset(int actionOffset)`
  Gets the action record from the table for the indicated offset.
  `List<LSDAActionRecord>`
  `getActionRecords()`
  Gets all of the action records in this action table.

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

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

- ## Constructor Details

  - ### LSDAActionTable

    public LSDAActionTable(TaskMonitor monitor, Program program, RegionDescriptor region)
    Constructor for an action table.
    Note: The `create(Address)` method must be called after constructing an LSDAActionTable 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 action table.
      `region` - the region or section of the program containing the action table.

- ## Method Details

  - ### create

    public void create(Address address, Address maxAddress) throws MemoryAccessException
    Create an LSDA Action Table from the bytes at `address`.
    Note: This method must get called before any of the "get..." methods.
    Parameters:
      `address` - the start (minimum address) of this action table.
      `maxAddress` - the end (maximum address) of this action table.
    Throws:
      `MemoryAccessException`

  - ### getActionRecords

    public List<LSDAActionRecord> getActionRecords()
    Gets all of the action records in this action table.
    Returns:
      the action records in this table or empty if no address has been established for this table.

  - ### getActionRecord

    public LSDAActionRecord getActionRecord(int actionIndex)
    Gets the action record from the table by its index.
    Parameters:
      `actionIndex` - indicates which action record (0 based) to get from the table.
    Returns:
      the action record or null if the index is invalid or an address hasn't been established for this table yet.

  - ### getActionRecordAtOffset

    public LSDAActionRecord getActionRecordAtOffset(int actionOffset)
    Gets the action record from the table for the indicated offset.
    Parameters:
      `actionOffset` - the byte offset into the table for the desired record
    Returns:
      the action record for the specified offset or null