LLVM 20.0.0git
|
A class that contains all UnwindRow objects for an FDE or a single unwind row for a CIE. More...
#include "llvm/DebugInfo/DWARF/DWARFDebugFrame.h"
Public Types | |
using | RowContainer = std::vector< UnwindRow > |
using | iterator = RowContainer::iterator |
using | const_iterator = RowContainer::const_iterator |
Public Member Functions | |
size_t | size () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
const UnwindRow & | operator[] (size_t Index) const |
void | dump (raw_ostream &OS, DIDumpOptions DumpOpts, unsigned IndentLevel=0) const |
Dump the UnwindTable to the stream. | |
Static Public Member Functions | |
static Expected< UnwindTable > | create (const CIE *Cie) |
Create an UnwindTable from a Common Information Entry (CIE). | |
static Expected< UnwindTable > | create (const FDE *Fde) |
Create an UnwindTable from a Frame Descriptor Entry (FDE). | |
A class that contains all UnwindRow objects for an FDE or a single unwind row for a CIE.
To unwind an address the rows, which are sorted by start address, can be searched to find the UnwindRow with the lowest starting address that is greater than or equal to the address that is being looked up.
Definition at line 321 of file DWARFDebugFrame.h.
using llvm::dwarf::UnwindTable::const_iterator = RowContainer::const_iterator |
Definition at line 325 of file DWARFDebugFrame.h.
using llvm::dwarf::UnwindTable::iterator = RowContainer::iterator |
Definition at line 324 of file DWARFDebugFrame.h.
using llvm::dwarf::UnwindTable::RowContainer = std::vector<UnwindRow> |
Definition at line 323 of file DWARFDebugFrame.h.
|
inline |
Definition at line 328 of file DWARFDebugFrame.h.
|
inline |
Definition at line 329 of file DWARFDebugFrame.h.
|
static |
Create an UnwindTable from a Common Information Entry (CIE).
Cie | The Common Information Entry to extract the table from. The CFIProgram is retrieved from the Cie object and used to create the UnwindTable. |
Definition at line 234 of file DWARFDebugFrame.cpp.
References llvm::dwarf::FrameEntry::cfis(), llvm::dwarf::CFIProgram::empty(), and llvm::dwarf::UnwindLocation::Unspecified.
Referenced by llvm::dwarf::CIE::dump(), and llvm::dwarf::FDE::dump().
|
static |
Create an UnwindTable from a Frame Descriptor Entry (FDE).
Fde | The Frame Descriptor Entry to extract the table from. The CFIProgram is retrieved from the Fde object and used to create the UnwindTable. |
Definition at line 204 of file DWARFDebugFrame.cpp.
References llvm::dwarf::FrameEntry::cfis(), llvm::createStringError(), llvm::dwarf::CFIProgram::empty(), llvm::dwarf::FDE::getAddressRange(), llvm::dwarf::FDE::getInitialLocation(), llvm::dwarf::FDE::getLinkedCIE(), llvm::dwarf::FrameEntry::getOffset(), llvm::invalid_argument, and llvm::dwarf::UnwindLocation::Unspecified.
void UnwindTable::dump | ( | raw_ostream & | OS, |
DIDumpOptions | DumpOpts, | ||
unsigned | IndentLevel = 0 |
||
) | const |
Dump the UnwindTable to the stream.
OS | the stream to use for output. |
MRI | register information that helps emit register names insteead of raw register numbers. |
IsEH | true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86. |
IndentLevel | specify the indent level as an integer. The UnwindRow will be output to the stream preceded by 2 * IndentLevel number of spaces. |
Definition at line 192 of file DWARFDebugFrame.cpp.
References OS.
Referenced by llvm::dwarf::operator<<().
|
inline |
Definition at line 330 of file DWARFDebugFrame.h.
|
inline |
Definition at line 331 of file DWARFDebugFrame.h.
Definition at line 332 of file DWARFDebugFrame.h.
|
inline |
Definition at line 327 of file DWARFDebugFrame.h.
Referenced by operator[]().