LLVM API Documentation
Abstract frame entry defining the common interface concrete entries implement. More...
Classes | |
struct | Instruction |
Public Types | |
enum | FrameKind { FK_CIE, FK_FDE } |
Public Member Functions | |
FrameEntry (FrameKind K, DataExtractor D, uint64_t Offset, uint64_t Length) | |
virtual | ~FrameEntry () |
FrameKind | getKind () const |
virtual uint64_t | getOffset () const |
virtual void | parseInstructions (uint32_t *Offset, uint32_t EndOffset) |
Parse and store a sequence of CFI instructions from our data stream, starting at *Offset and ending at EndOffset. If everything goes well, *Offset should be equal to EndOffset when this method returns. Otherwise, an error occurred. More... | |
virtual void | dumpHeader (raw_ostream &OS) const =0 |
Dump the entry header to the given output stream. More... | |
virtual void | dumpInstructions (raw_ostream &OS) const |
Dump the entry's instructions to the given output stream. More... | |
Protected Types | |
typedef std::vector< uint64_t > | Operands |
Protected Member Functions | |
void | addInstruction (uint8_t Opcode) |
void | addInstruction (uint8_t Opcode, uint64_t Operand1) |
void | addInstruction (uint8_t Opcode, uint64_t Operand1, uint64_t Operand2) |
Protected Attributes | |
const FrameKind | Kind |
DataExtractor | Data |
The data stream holding the section from which the entry was parsed. More... | |
uint64_t | Offset |
Offset of this entry in the section. More... | |
uint64_t | Length |
Entry length as specified in DWARF. More... | |
std::vector< Instruction > | Instructions |
Abstract frame entry defining the common interface concrete entries implement.
Definition at line 26 of file DWARFDebugFrame.cpp.
|
protected |
An entry may contain CFI instructions. An instruction consists of an opcode and an optional sequence of operands.
Definition at line 65 of file DWARFDebugFrame.cpp.
Enumerator | |
---|---|
FK_CIE | |
FK_FDE |
Definition at line 28 of file DWARFDebugFrame.cpp.
|
inline |
Definition at line 29 of file DWARFDebugFrame.cpp.
|
inlinevirtual |
Definition at line 32 of file DWARFDebugFrame.cpp.
|
inlineprotected |
Convenience methods to add a new instruction with the given opcode and operands to the Instructions vector.
Definition at line 79 of file DWARFDebugFrame.cpp.
|
inlineprotected |
Definition at line 83 of file DWARFDebugFrame.cpp.
|
inlineprotected |
Definition at line 88 of file DWARFDebugFrame.cpp.
|
pure virtual |
Dump the entry header to the given output stream.
Referenced by llvm::DWARFDebugFrame::dump().
|
virtual |
Dump the entry's instructions to the given output stream.
Definition at line 185 of file DWARFDebugFrame.cpp.
References llvm::dwarf::CallFrameString(), DWARF_CFI_PRIMARY_OPCODE_MASK, and I.
Referenced by llvm::DWARFDebugFrame::dump().
|
inline |
Definition at line 35 of file DWARFDebugFrame.cpp.
|
inlinevirtual |
Definition at line 36 of file DWARFDebugFrame.cpp.
Referenced by llvm::DWARFDebugFrame::parse().
|
virtual |
Parse and store a sequence of CFI instructions from our data stream, starting at *Offset and ending at EndOffset. If everything goes well, *Offset should be equal to EndOffset when this method returns. Otherwise, an error occurred.
Definition at line 101 of file DWARFDebugFrame.cpp.
References llvm::dwarf::DW_CFA_advance_loc, llvm::dwarf::DW_CFA_advance_loc1, llvm::dwarf::DW_CFA_advance_loc2, llvm::dwarf::DW_CFA_advance_loc4, llvm::dwarf::DW_CFA_def_cfa, llvm::dwarf::DW_CFA_def_cfa_expression, llvm::dwarf::DW_CFA_def_cfa_offset, llvm::dwarf::DW_CFA_def_cfa_offset_sf, llvm::dwarf::DW_CFA_def_cfa_register, llvm::dwarf::DW_CFA_def_cfa_sf, llvm::dwarf::DW_CFA_expression, llvm::dwarf::DW_CFA_nop, llvm::dwarf::DW_CFA_offset, llvm::dwarf::DW_CFA_offset_extended, llvm::dwarf::DW_CFA_offset_extended_sf, llvm::dwarf::DW_CFA_register, llvm::dwarf::DW_CFA_remember_state, llvm::dwarf::DW_CFA_restore, llvm::dwarf::DW_CFA_restore_extended, llvm::dwarf::DW_CFA_restore_state, llvm::dwarf::DW_CFA_same_value, llvm::dwarf::DW_CFA_set_loc, llvm::dwarf::DW_CFA_undefined, llvm::dwarf::DW_CFA_val_expression, llvm::dwarf::DW_CFA_val_offset, llvm::dwarf::DW_CFA_val_offset_sf, DWARF_CFI_PRIMARY_OPCODE_MASK, DWARF_CFI_PRIMARY_OPERAND_MASK, llvm_unreachable, and llvm::report_fatal_error().
Referenced by llvm::DWARFDebugFrame::parse().
|
protected |
The data stream holding the section from which the entry was parsed.
Definition at line 55 of file DWARFDebugFrame.cpp.
|
protected |
Definition at line 75 of file DWARFDebugFrame.cpp.
|
protected |
Definition at line 51 of file DWARFDebugFrame.cpp.
|
protected |
Entry length as specified in DWARF.
Definition at line 61 of file DWARFDebugFrame.cpp.
|
protected |
Offset of this entry in the section.
Definition at line 58 of file DWARFDebugFrame.cpp.