LLVM 20.0.0git
|
#include "llvm/DebugInfo/DWARF/DWARFDebugLine.h"
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_t > | StandardOpcodeLengths |
std::vector< DWARFFormValue > | IncludeDirectories |
std::vector< FileNameEntry > | FileNames |
Definition at line 59 of file DWARFDebugLine.h.
DWARFDebugLine::Prologue::Prologue | ( | ) |
Definition at line 70 of file DWARFDebugLine.cpp.
void DWARFDebugLine::Prologue::clear | ( | ) |
Definition at line 105 of file DWARFDebugLine.cpp.
References llvm::dwarf::DWARF32.
Referenced by llvm::DWARFDebugLine::LineTable::clear().
void DWARFDebugLine::Prologue::dump | ( | raw_ostream & | OS, |
DIDumpOptions | DumpOptions | ||
) | const |
Definition at line 117 of file DWARFDebugLine.cpp.
References llvm::DWARFDebugLine::FileNameEntry::Checksum, llvm::consumeError(), llvm::MD5::MD5Result::digest(), llvm::DWARFDebugLine::FileNameEntry::DirIdx, llvm::DWARFFormValue::dump(), llvm::dwarf::FormParams::Format, llvm::format(), llvm::dwarf::FormatString(), llvm::formatv(), llvm::DWARFFormValue::getAsCString(), llvm::dwarf::getDwarfOffsetByteSize(), I, llvm::DWARFDebugLine::FileNameEntry::Length, llvm::DWARFDebugLine::FileNameEntry::ModTime, llvm::DWARFDebugLine::FileNameEntry::Name, OS, llvm::DWARFDebugLine::FileNameEntry::Source, and versionIsSupported().
Referenced by llvm::DWARFDebugLine::LineTable::dump(), and llvm::DWARFDebugLine::LineTable::parse().
|
inline |
Definition at line 97 of file DWARFDebugLine.h.
References llvm::dwarf::FormParams::AddrSize, and FormParams.
Referenced by llvm::DWARFDebugLine::LineTable::parse().
bool DWARFDebugLine::Prologue::getFileNameByIndex | ( | uint64_t | FileIndex, |
StringRef | CompDir, | ||
DILineInfoSpecifier::FileLineInfoKind | Kind, | ||
std::string & | Result, | ||
sys::path::Style | Style = sys::path::Style::native |
||
) | const |
Definition at line 1448 of file DWARFDebugLine.cpp.
References llvm::sys::path::append(), assert(), llvm::StringRef::empty(), llvm::sys::path::filename(), llvm::dwarf_linker::isPathAbsoluteOnWindowsOrPosix(), llvm::dwarf::toString(), and llvm::dwarf::toStringRef().
Referenced by llvm::DWARFDebugLine::LineTable::getFileNameByIndex().
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().
|
inline |
Definition at line 95 of file DWARFDebugLine.h.
References FormParams.
std::optional< uint64_t > DWARFDebugLine::Prologue::getLastValidFileIndex | ( | ) | const |
Definition at line 82 of file DWARFDebugLine.cpp.
References assert().
Referenced by llvm::DWARFDebugLine::LineTable::getLastValidFileIndex().
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().
|
inline |
Definition at line 96 of file DWARFDebugLine.h.
References FormParams, and llvm::dwarf::FormParams::Version.
Referenced by llvm::DWARFDebugLine::LineTable::getDirectoryForEntry().
Definition at line 72 of file DWARFDebugLine.cpp.
References assert().
Referenced by llvm::DWARFDebugLine::LineTable::hasFileAtIndex().
|
inline |
Definition at line 98 of file DWARFDebugLine.h.
References llvm::dwarf::DWARF64, llvm::dwarf::FormParams::Format, and FormParams.
Referenced by sizeofPrologueLength(), and sizeofTotalLength().
Error DWARFDebugLine::Prologue::parse | ( | DWARFDataExtractor | Data, |
uint64_t * | OffsetPtr, | ||
function_ref< void(Error)> | RecoverableErrorHandler, | ||
const DWARFContext & | Ctx, | ||
const DWARFUnit * | U = nullptr |
||
) |
Definition at line 363 of file DWARFDebugLine.cpp.
References llvm::dwarf::FormParams::AddrSize, assert(), llvm::createStringError(), llvm::dwarf::FormParams::Format, llvm::DataExtractor::getAddressSize(), llvm::DWARFDataExtractor::getInitialLength(), llvm::DWARFDataExtractor::getRelocatedValue(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU8(), I, llvm::invalid_argument, llvm::joinErrors(), llvm::not_supported, parseV2DirFileTables(), parseV5DirFileTables(), llvm::Error::success(), llvm::DataExtractor::Cursor::takeError(), llvm::DataExtractor::Cursor::tell(), llvm::toString(), llvm::dwarf::FormParams::Version, and versionIsSupported().
Referenced by llvm::DWARFDebugLine::LineTable::parse().
|
inline |
Definition at line 102 of file DWARFDebugLine.h.
References isDWARF64().
|
inline |
Definition at line 100 of file DWARFDebugLine.h.
References isDWARF64().
Referenced by llvm::DWARFDebugLine::LineTable::parse().
bool DWARFDebugLine::Prologue::totalLengthIsValid | ( | ) | const |
Definition at line 1561 of file DWARFDebugLine.cpp.
ContentTypeTracker llvm::DWARFDebugLine::Prologue::ContentTypes |
This tracks which optional file format content types are present.
Definition at line 90 of file DWARFDebugLine.h.
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().
std::vector<FileNameEntry> llvm::DWARFDebugLine::Prologue::FileNames |
Definition at line 93 of file DWARFDebugLine.h.
Referenced by llvm::dwarf_linker::parallel::TypeUnit::createDIETree(), llvm::dwarf_linker::parallel::TypeUnit::finishCloningAndEmit(), and llvm::DWARFDebugLine::LineTable::parse().
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().
std::vector<DWARFFormValue> llvm::DWARFDebugLine::Prologue::IncludeDirectories |
Definition at line 92 of file DWARFDebugLine.h.
Referenced by llvm::DWARFDebugLine::LineTable::getDirectoryForEntry().
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().
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().
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().
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().
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().
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.
uint8_t llvm::DWARFDebugLine::Prologue::SegSelectorSize |
In v5, size in bytes of a segment selector.
Definition at line 73 of file DWARFDebugLine.h.
std::vector<uint8_t> llvm::DWARFDebugLine::Prologue::StandardOpcodeLengths |
Definition at line 91 of file DWARFDebugLine.h.
Referenced by llvm::DWARFDebugLine::LineTable::parse(), and llvm::dwarf_linker::parallel::TypeUnit::TypeUnit().
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().