LLVM  7.0.0svn
Classes | Public Types | Public Member Functions | List of all members
llvm::dwarf::CFIProgram Class Reference

Represent a sequence of Call Frame Information instructions that, when read in order, construct a table mapping PC to frame state. More...

#include "llvm/DebugInfo/DWARF/DWARFDebugFrame.h"

Classes

struct  Instruction
 An instruction consists of a DWARF CFI opcode and an optional sequence of operands. More...
 

Public Types

typedef SmallVector< uint64_t, 2 > Operands
 
using InstrList = std::vector< Instruction >
 
using iterator = InstrList::iterator
 
using const_iterator = InstrList::const_iterator
 

Public Member Functions

iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
unsigned size () const
 
bool empty () const
 
 CFIProgram (uint64_t CodeAlignmentFactor, int64_t DataAlignmentFactor)
 
Error parse (DataExtractor Data, uint32_t *Offset, uint32_t EndOffset)
 Parse and store a sequence of CFI instructions from Data, starting at *Offset and ending at EndOffset. More...
 
void dump (raw_ostream &OS, const MCRegisterInfo *MRI, bool IsEH, unsigned IndentLevel=1) const
 

Detailed Description

Represent a sequence of Call Frame Information instructions that, when read in order, construct a table mapping PC to frame state.

This can also be referred to as "CFI rules" in DWARF literature to avoid confusion with computer programs in the broader sense, and in this context each instruction would be a rule to establish the mapping. Refer to pg. 172 in the DWARF5 manual, "6.4.1 Structure of Call Frame Information".

Definition at line 34 of file DWARFDebugFrame.h.

Member Typedef Documentation

◆ const_iterator

using llvm::dwarf::CFIProgram::const_iterator = InstrList::const_iterator

Definition at line 52 of file DWARFDebugFrame.h.

◆ InstrList

Definition at line 50 of file DWARFDebugFrame.h.

◆ iterator

using llvm::dwarf::CFIProgram::iterator = InstrList::iterator

Definition at line 51 of file DWARFDebugFrame.h.

◆ Operands

Definition at line 36 of file DWARFDebugFrame.h.

Constructor & Destructor Documentation

◆ CFIProgram()

llvm::dwarf::CFIProgram::CFIProgram ( uint64_t  CodeAlignmentFactor,
int64_t  DataAlignmentFactor 
)
inline

Member Function Documentation

◆ begin() [1/2]

iterator llvm::dwarf::CFIProgram::begin ( )
inline

Definition at line 54 of file DWARFDebugFrame.h.

◆ begin() [2/2]

const_iterator llvm::dwarf::CFIProgram::begin ( ) const
inline

Definition at line 55 of file DWARFDebugFrame.h.

◆ dump()

void CFIProgram::dump ( raw_ostream OS,
const MCRegisterInfo MRI,
bool  IsEH,
unsigned  IndentLevel = 1 
) const

◆ empty()

bool llvm::dwarf::CFIProgram::empty ( ) const
inline

Definition at line 60 of file DWARFDebugFrame.h.

◆ end() [1/2]

iterator llvm::dwarf::CFIProgram::end ( )
inline

Definition at line 56 of file DWARFDebugFrame.h.

◆ end() [2/2]

const_iterator llvm::dwarf::CFIProgram::end ( ) const
inline

Definition at line 57 of file DWARFDebugFrame.h.

◆ parse()

Error CFIProgram::parse ( DataExtractor  Data,
uint32_t Offset,
uint32_t  EndOffset 
)

◆ size()

unsigned llvm::dwarf::CFIProgram::size ( ) const
inline

Definition at line 59 of file DWARFDebugFrame.h.


The documentation for this class was generated from the following files: