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

# Class FdeTable

java.lang.Object
ghidra.app.plugin.exceptionhandlers.gcc.structures.ehFrame.FdeTable

public class FdeTable extends Object
Class that builds the Frame Description Entry (FDE) Table for a Common Information Entry (CIE).

Call Frame Instructions (taken from gcc-3.2.3-20030829/gcc/dwarf2.h

        DW_CFA_advance_loc = 0x40,
        DW_CFA_offset = 0x80,
        DW_CFA_restore = 0xc0,
        DW_CFA_nop = 0x00,
        DW_CFA_set_loc = 0x01,
        DW_CFA_advance_loc1 = 0x02,
        DW_CFA_advance_loc2 = 0x03,
        DW_CFA_advance_loc4 = 0x04,
        DW_CFA_offset_extended = 0x05,
        DW_CFA_restore_extended = 0x06,
        DW_CFA_undefined = 0x07,
        DW_CFA_same_value = 0x08,
        DW_CFA_register = 0x09,
        DW_CFA_remember_state = 0x0a,
        DW_CFA_restore_state = 0x0b,
        DW_CFA_def_cfa = 0x0c,
        DW_CFA_def_cfa_register = 0x0d,
        DW_CFA_def_cfa_offset = 0x0e,

        //DWARF 3. //
        DW_CFA_def_cfa_expression = 0x0f,
        DW_CFA_expression = 0x10,
        DW_CFA_offset_extended_sf = 0x11,
        DW_CFA_def_cfa_sf = 0x12,
        DW_CFA_def_cfa_offset_sf = 0x13,

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FdeTable(TaskMonitor monitor, Program curProg)`
  Constructor for an FDE table.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `create(Address addr, DwarfEHDecoder decoder, long fdeTableCnt)`
  Creates an FDE Table at the specified Address.

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

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

- ## Constructor Details

  - ### FdeTable

    public FdeTable(TaskMonitor monitor, Program curProg)
    Constructor for an FDE table.
    Parameters:
      `monitor` - a status monitor for indicating progress or allowing a task to be cancelled.
      `curProg` - the program containing the FDE table.

- ## Method Details

  - ### create

    public void create(Address addr, DwarfEHDecoder decoder, long fdeTableCnt) throws MemoryAccessException, ExceptionHandlerFrameException
    Creates an FDE Table at the specified Address.
    Parameters:
      `addr` - Address at which the FDE Table should be created.
      `decoder` - the decoder for DWARF encoded exception handling information
      `fdeTableCnt` - the number of exception handler FDEs.
    Throws:
      `MemoryAccessException` - if the needed memory can't be read.
      `ExceptionHandlerFrameException` - if the FDE table can't be decoded.