LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::DWARFDebugLine::Prologue Struct Reference

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

Public Member Functions

 Prologue ()
 
const dwarf::FormParams getFormParams () const
 
uint16_t getVersion () const
 
uint8_t getAddressSize () const
 
bool isDWARF64 () const
 
uint32_t sizeofTotalLength () const
 
uint32_t sizeofPrologueLength () const
 
bool totalLengthIsValid () const
 
uint64_t getLength () const
 Length of the prologue in bytes.
 
const llvm::DWARFDebugLine::FileNameEntrygetFileNameEntry (uint64_t Index) const
 Get DWARF-version aware access to the file name entry at the provided index.
 
bool hasFileAtIndex (uint64_t FileIndex) const
 
std::optional< uint64_tgetLastValidFileIndex () const
 
bool getFileNameByIndex (uint64_t FileIndex, StringRef CompDir, DILineInfoSpecifier::FileLineInfoKind Kind, std::string &Result, sys::path::Style Style=sys::path::Style::native) const
 
void clear ()
 
void dump (raw_ostream &OS, DIDumpOptions DumpOptions) const
 
Error parse (DWARFDataExtractor Data, uint64_t *OffsetPtr, function_ref< void(Error)> RecoverableErrorHandler, const DWARFContext &Ctx, const DWARFUnit *U=nullptr)
 

Public Attributes

uint64_t TotalLength
 The size in bytes of the statement information for this compilation unit (not including the total_length field itself).
 
dwarf::FormParams FormParams
 Version, address size (starting in v5), and DWARF32/64 format; these parameters affect interpretation of forms (used in the directory and file tables starting with v5).
 
uint64_t PrologueLength
 The number of bytes following the prologue_length field to the beginning of the first byte of the statement program itself.
 
uint8_t SegSelectorSize
 In v5, size in bytes of a segment selector.
 
uint8_t MinInstLength
 The size in bytes of the smallest target machine instruction.
 
uint8_t MaxOpsPerInst
 The maximum number of individual operations that may be encoded in an instruction.
 
uint8_t DefaultIsStmt
 The initial value of theis_stmtregister.
 
int8_t LineBase
 This parameter affects the meaning of the special opcodes. See below.
 
uint8_t LineRange
 This parameter affects the meaning of the special opcodes. See below.
 
uint8_t OpcodeBase
 The number assigned to the first special opcode.
 
ContentTypeTracker ContentTypes
 This tracks which optional file format content types are present.
 
std::vector< uint8_tStandardOpcodeLengths
 
std::vector< DWARFFormValueIncludeDirectories
 
std::vector< FileNameEntryFileNames
 

Detailed Description

Definition at line 59 of file DWARFDebugLine.h.

Constructor & Destructor Documentation

◆ Prologue()

DWARFDebugLine::Prologue::Prologue ( )

Definition at line 70 of file DWARFDebugLine.cpp.

Member Function Documentation

◆ clear()

void DWARFDebugLine::Prologue::clear ( )

Definition at line 105 of file DWARFDebugLine.cpp.

References llvm::dwarf::DWARF32.

Referenced by llvm::DWARFDebugLine::LineTable::clear().

◆ dump()

void DWARFDebugLine::Prologue::dump ( raw_ostream OS,
DIDumpOptions  DumpOptions 
) const

◆ getAddressSize()

uint8_t llvm::DWARFDebugLine::Prologue::getAddressSize ( ) const
inline

◆ getFileNameByIndex()

bool DWARFDebugLine::Prologue::getFileNameByIndex ( uint64_t  FileIndex,
StringRef  CompDir,
DILineInfoSpecifier::FileLineInfoKind  Kind,
std::string &  Result,
sys::path::Style  Style = sys::path::Style::native 
) const

◆ getFileNameEntry()

const llvm::DWARFDebugLine::FileNameEntry & DWARFDebugLine::Prologue::getFileNameEntry ( uint64_t  Index) const

Get DWARF-version aware access to the file name entry at the provided index.

Definition at line 95 of file DWARFDebugLine.cpp.

References assert().

◆ getFormParams()

const dwarf::FormParams llvm::DWARFDebugLine::Prologue::getFormParams ( ) const
inline

Definition at line 95 of file DWARFDebugLine.h.

References FormParams.

◆ getLastValidFileIndex()

std::optional< uint64_t > DWARFDebugLine::Prologue::getLastValidFileIndex ( ) const

Definition at line 82 of file DWARFDebugLine.cpp.

References assert().

Referenced by llvm::DWARFDebugLine::LineTable::getLastValidFileIndex().

◆ getLength()

uint64_t DWARFDebugLine::Prologue::getLength ( ) const

Length of the prologue in bytes.

Definition at line 355 of file DWARFDebugLine.cpp.

References llvm::Length.

Referenced by llvm::DWARFDebugLine::LineTable::parse().

◆ getVersion()

uint16_t llvm::DWARFDebugLine::Prologue::getVersion ( ) const
inline

◆ hasFileAtIndex()

bool DWARFDebugLine::Prologue::hasFileAtIndex ( uint64_t  FileIndex) const

Definition at line 72 of file DWARFDebugLine.cpp.

References assert().

Referenced by llvm::DWARFDebugLine::LineTable::hasFileAtIndex().

◆ isDWARF64()

bool llvm::DWARFDebugLine::Prologue::isDWARF64 ( ) const
inline

◆ parse()

Error DWARFDebugLine::Prologue::parse ( DWARFDataExtractor  Data,
uint64_t OffsetPtr,
function_ref< void(Error)>  RecoverableErrorHandler,
const DWARFContext Ctx,
const DWARFUnit U = nullptr 
)

◆ sizeofPrologueLength()

uint32_t llvm::DWARFDebugLine::Prologue::sizeofPrologueLength ( ) const
inline

Definition at line 102 of file DWARFDebugLine.h.

References isDWARF64().

◆ sizeofTotalLength()

uint32_t llvm::DWARFDebugLine::Prologue::sizeofTotalLength ( ) const
inline

Definition at line 100 of file DWARFDebugLine.h.

References isDWARF64().

Referenced by llvm::DWARFDebugLine::LineTable::parse().

◆ totalLengthIsValid()

bool DWARFDebugLine::Prologue::totalLengthIsValid ( ) const

Definition at line 1561 of file DWARFDebugLine.cpp.

Member Data Documentation

◆ ContentTypes

ContentTypeTracker llvm::DWARFDebugLine::Prologue::ContentTypes

This tracks which optional file format content types are present.

Definition at line 90 of file DWARFDebugLine.h.

◆ DefaultIsStmt

uint8_t llvm::DWARFDebugLine::Prologue::DefaultIsStmt

The initial value of theis_stmtregister.

Definition at line 82 of file DWARFDebugLine.h.

Referenced by llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ FileNames

std::vector<FileNameEntry> llvm::DWARFDebugLine::Prologue::FileNames

◆ FormParams

dwarf::FormParams llvm::DWARFDebugLine::Prologue::FormParams

Version, address size (starting in v5), and DWARF32/64 format; these parameters affect interpretation of forms (used in the directory and file tables starting with v5).

Definition at line 68 of file DWARFDebugLine.h.

Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmitLineTable(), llvm::dwarf_linker::classic::DwarfStreamer::emitLineTableForUnit(), getAddressSize(), getFormParams(), getVersion(), isDWARF64(), and llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ IncludeDirectories

std::vector<DWARFFormValue> llvm::DWARFDebugLine::Prologue::IncludeDirectories

◆ LineBase

int8_t llvm::DWARFDebugLine::Prologue::LineBase

This parameter affects the meaning of the special opcodes. See below.

Definition at line 84 of file DWARFDebugLine.h.

Referenced by llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ LineRange

uint8_t llvm::DWARFDebugLine::Prologue::LineRange

This parameter affects the meaning of the special opcodes. See below.

Definition at line 86 of file DWARFDebugLine.h.

Referenced by llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ MaxOpsPerInst

uint8_t llvm::DWARFDebugLine::Prologue::MaxOpsPerInst

The maximum number of individual operations that may be encoded in an instruction.

Definition at line 80 of file DWARFDebugLine.h.

Referenced by llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ MinInstLength

uint8_t llvm::DWARFDebugLine::Prologue::MinInstLength

The size in bytes of the smallest target machine instruction.

Statement program opcodes that alter the address register first multiply their operands by this value.

Definition at line 77 of file DWARFDebugLine.h.

Referenced by llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ OpcodeBase

uint8_t llvm::DWARFDebugLine::Prologue::OpcodeBase

The number assigned to the first special opcode.

Definition at line 88 of file DWARFDebugLine.h.

Referenced by llvm::DWARFDebugLine::LineTable::parse(), and llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().

◆ PrologueLength

uint64_t llvm::DWARFDebugLine::Prologue::PrologueLength

The number of bytes following the prologue_length field to the beginning of the first byte of the statement program itself.

Definition at line 71 of file DWARFDebugLine.h.

◆ SegSelectorSize

uint8_t llvm::DWARFDebugLine::Prologue::SegSelectorSize

In v5, size in bytes of a segment selector.

Definition at line 73 of file DWARFDebugLine.h.

◆ StandardOpcodeLengths

std::vector<uint8_t> llvm::DWARFDebugLine::Prologue::StandardOpcodeLengths

◆ TotalLength

uint64_t llvm::DWARFDebugLine::Prologue::TotalLength

The size in bytes of the statement information for this compilation unit (not including the total_length field itself).

Definition at line 64 of file DWARFDebugLine.h.

Referenced by llvm::DWARFDebugLine::LineTable::parse().


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