Header menu logo B2R2

CFAInstruction Type

Represents call frame instructions used for virtually unwinding stack.

Record fields

Record Field Description

DW_CFA_GNU_args_size

Full Usage: DW_CFA_GNU_args_size

Field type: CFAInstruction
Modifiers: static

Takes an unsigned LEB128 operand representing an argument size

Field type: CFAInstruction

DW_CFA_GNU_negative_offset_extended

Full Usage: DW_CFA_GNU_negative_offset_extended

Field type: CFAInstruction
Modifiers: static

Takes two operands: an unsigned LEB128 value representing a register number and an unsigned LEB128 which represents the magnitude of the offset. This instruction is identical to DW_CFA_offset_extended_sf except that the operand is subtracted to produce the offset.

Field type: CFAInstruction

DW_CFA_advance_loc

Full Usage: DW_CFA_advance_loc

Field type: CFAInstruction
Modifiers: static

Takes a single operand (encoded with the opcode) that represents a constant delta, and creates a new table row with a location value that is computed by taking the current entry's location value and adding the value of delta * code_alignment_factor.

Field type: CFAInstruction

DW_CFA_advance_loc1

Full Usage: DW_CFA_advance_loc1

Field type: CFAInstruction
Modifiers: static

Same as DW_CFA_advance_loc, but takes a ubyte value as an operand that represents a delta.

Field type: CFAInstruction

DW_CFA_advance_loc2

Full Usage: DW_CFA_advance_loc2

Field type: CFAInstruction
Modifiers: static

Same as DW_CFA_advance_loc, but takes a 2-byte unsigned value as an operand that represents a delta.

Field type: CFAInstruction

DW_CFA_advance_loc4

Full Usage: DW_CFA_advance_loc4

Field type: CFAInstruction
Modifiers: static

Same as DW_CFA_advance_loc, but takes a 4-byte unsigned value as an operand that represents a delta.

Field type: CFAInstruction

DW_CFA_def_cfa

Full Usage: DW_CFA_def_cfa

Field type: CFAInstruction
Modifiers: static

Takes two unsigned LEB128 operands representing a register number and a non-factored offset, and defines the current CFA rule to use the provided register and offset.

Field type: CFAInstruction

DW_CFA_def_cfa_expression

Full Usage: DW_CFA_def_cfa_expression

Field type: CFAInstruction
Modifiers: static

Takes a single operand encoded as a DW_FORM_exprloc value representing a DWARF expression, and establishes that expression as the means by which the current CFA is computed.

Field type: CFAInstruction

DW_CFA_def_cfa_offset

Full Usage: DW_CFA_def_cfa_offset

Field type: CFAInstruction
Modifiers: static

Takes a single unsigned LEB128 operand representing a (non-factored) offset, and defines the current CFA rule to use the provided offset (but to keep the old register).

Field type: CFAInstruction

DW_CFA_def_cfa_offset_sf

Full Usage: DW_CFA_def_cfa_offset_sf

Field type: CFAInstruction
Modifiers: static

Identical to DW_CFA_def_cfa_offset except that the operand is signed and factored.

Field type: CFAInstruction

DW_CFA_def_cfa_register

Full Usage: DW_CFA_def_cfa_register

Field type: CFAInstruction
Modifiers: static

Takes a single unsigned LEB128 operand representing a register number, and defines the current CFA rule to use the provided register (but to keep the old offset). This operation is valid only if the current CFA rule is defined to use a register and offset.

Field type: CFAInstruction

DW_CFA_def_cfa_sf

Full Usage: DW_CFA_def_cfa_sf

Field type: CFAInstruction
Modifiers: static

Takes two operands: an unsigned LEB128 value representing a register number and a signed LEB128 factored offset, and defines the current CFA.

Field type: CFAInstruction

DW_CFA_expression

Full Usage: DW_CFA_expression

Field type: CFAInstruction
Modifiers: static

Takes two operands: an unsigned LEB128 value representing a register number, and a DW_FORM_block value representing a DWARF expression. The required action is to change the rule for the register indicated by the register number to be an expression(E) rule where E is the DWARF expression. That is, the DWARF expression computes the address. The value of the CFA is pushed on the DWARF evaluation stack prior to execution of the DWARF expression.

Field type: CFAInstruction

DW_CFA_nop

Full Usage: DW_CFA_nop

Field type: CFAInstruction
Modifiers: static

No operation.

Field type: CFAInstruction

DW_CFA_offset

Full Usage: DW_CFA_offset

Field type: CFAInstruction
Modifiers: static

Takes two operands: a register number (encoded with the opcode) and an unsigned LEB128 constant representing a factored offset. The required action is to change the rule for the register indicated by the register number to be an offset(N) rule where the value of N is factored offset * data_alignment_factor.

Field type: CFAInstruction

DW_CFA_offset_extended

Full Usage: DW_CFA_offset_extended

Field type: CFAInstruction
Modifiers: static

Takes two unsigned LEB128 operands representing a register number and a factored offset. This instruction is identical to DW_CFA_offset except for the encoding and size of the register operand.

Field type: CFAInstruction

DW_CFA_offset_extended_sf

Full Usage: DW_CFA_offset_extended_sf

Field type: CFAInstruction
Modifiers: static

Takes two operands: an unsigned LEB128 value representing a register number and a signed LEB128 factored offset. This instruction is identical to DW_CFA_offset_extended except that the second operand is signed and factored. The resulting offset is factored_offset * data_alignment_factor.

Field type: CFAInstruction

DW_CFA_register

Full Usage: DW_CFA_register

Field type: CFAInstruction
Modifiers: static

Takes two unsigned LEB128 operands representing register numbers. The required action is to set the rule for the first register to be register(R) where R is the second register.

Field type: CFAInstruction

DW_CFA_remember_state

Full Usage: DW_CFA_remember_state

Field type: CFAInstruction
Modifiers: static

Takes no operands. The required action is to push the set of rules for every register onto an implicit stack.

Field type: CFAInstruction

DW_CFA_restore

Full Usage: DW_CFA_restore

Field type: CFAInstruction
Modifiers: static

Takes a single operand (encoded with the opcode) that represents a register number. The required action is to change the rule for the indicated register to the rule assigned it by the initial_instructions in the CIE.

Field type: CFAInstruction

DW_CFA_restore_extended

Full Usage: DW_CFA_restore_extended

Field type: CFAInstruction
Modifiers: static

Takes a single unsigned LEB128 operand that represents a register number. This instruction is identical to DW_CFA_restore except for the encoding and size of the register operand.

Field type: CFAInstruction

DW_CFA_restore_state

Full Usage: DW_CFA_restore_state

Field type: CFAInstruction
Modifiers: static

Takes no operands. The required action is to pop the set of rules off the implicit stack and place them in the current row.

Field type: CFAInstruction

DW_CFA_same_value

Full Usage: DW_CFA_same_value

Field type: CFAInstruction
Modifiers: static

Takes a single unsigned LEB128 operand that represents a register number, and sets the rule for the specified register to "same value".

Field type: CFAInstruction

DW_CFA_set_loc

Full Usage: DW_CFA_set_loc

Field type: CFAInstruction
Modifiers: static

Takes a single operand that represents a target address, and creates a new table row using the specified address as the location.

Field type: CFAInstruction

DW_CFA_undefined

Full Usage: DW_CFA_undefined

Field type: CFAInstruction
Modifiers: static

Takes a single unsigned LEB128 operand that represents a register number, and sets the rule for the specified register to undefined.

Field type: CFAInstruction

DW_CFA_val_expression

Full Usage: DW_CFA_val_expression

Field type: CFAInstruction
Modifiers: static

Takes two operands: an unsigned LEB128 value representing a register number, and a DW_FORM_block value representing a DWARF expression. The required action is to change the rule for the register indicated by the register number to be a val_expression(E) rule where E is the DWARF expression. That is, the DWARF expression computes the value of the given register. The value of the CFA is pushed on the DWARF evaluation stack prior to execution of the DWARF expression.

Field type: CFAInstruction

DW_CFA_val_offset

Full Usage: DW_CFA_val_offset

Field type: CFAInstruction
Modifiers: static

Takes two unsigned LEB128 operands representing a register number and a factored offset. The required action is to change the rule for the register indicated by the register number to be a val_offset(N) rule where the value of N is factored_offset * data_alignment_factor.

Field type: CFAInstruction

DW_CFA_val_offset_sf

Full Usage: DW_CFA_val_offset_sf

Field type: CFAInstruction
Modifiers: static

Takes two operands: an unsigned LEB128 value representing a register number and a signed LEB128 factored offset. This instruction is identical to DW_CFA_val_offset except that the second operand is signed and factored. The resulting offset is factored_offset * data_alignment_factor.

Field type: CFAInstruction

Type something to start searching.