LLVM 22.0.0git
|
.debug_names section consists of one or more units. More...
#include "llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h"
Classes | |
struct | Abbrev |
Abbreviation describing the encoding of Name Index entries. More... | |
struct | AttributeEncoding |
Index attribute and its encoding. More... | |
struct | DWARFDebugNamesOffsets |
Offsets for the start of various important tables from the start of the section. More... | |
class | Entry |
DWARF v5-specific implementation of an Accelerator Entry. More... | |
struct | Header |
DWARF v5 Name Index header. More... | |
class | NameIndex |
Represents a single accelerator table within the DWARF v5 .debug_names section. More... | |
class | NameIterator |
class | NameTableEntry |
A single entry in the Name Table (DWARF v5 sect. More... | |
class | SentinelError |
Error returned by NameIndex::getEntry to report it has reached the end of the entry list. More... | |
class | ValueIterator |
Public Types | |
using | const_iterator = SmallVector<NameIndex, 0>::const_iterator |
Public Member Functions | |
DWARFDebugNames (const DWARFDataExtractor &AccelSection, DataExtractor StringSection) | |
Error | extract () override |
void | dump (raw_ostream &OS) const override |
iterator_range< ValueIterator > | equal_range (StringRef Key) const |
Look up all entries in the accelerator table matching Key . | |
const_iterator | begin () const |
const_iterator | end () const |
const NameIndex * | getCUOrTUNameIndex (uint64_t UnitOffset) |
Return the Name Index covering the compile unit or local type unit at UnitOffset, or nullptr if there is no Name Index covering that unit. | |
Public Member Functions inherited from llvm::DWARFAcceleratorTable | |
DWARFAcceleratorTable (const DWARFDataExtractor &AccelSection, DataExtractor StringSection) | |
virtual | ~DWARFAcceleratorTable () |
DWARFAcceleratorTable (const DWARFAcceleratorTable &)=delete | |
void | operator= (const DWARFAcceleratorTable &)=delete |
Additional Inherited Members | |
Protected Attributes inherited from llvm::DWARFAcceleratorTable | |
DWARFDataExtractor | AccelSection |
DataExtractor | StringSection |
.debug_names section consists of one or more units.
Each unit starts with a header, which is followed by a list of compilation units, local and foreign type units.
These may be followed by an (optional) hash lookup table, which consists of an array of buckets and hashes similar to the apple tables above. The only difference is that the hashes array is 1-based, and consequently an empty bucket is denoted by 0 and not UINT32_MAX.
Next is the name table, which consists of an array of names and array of entry offsets. This is different from the apple tables, which store names next to the actual entries.
The structure of the entries is described by an abbreviations table, which comes after the name table. Unlike the apple tables, which have a uniform entry structure described in the header, each .debug_names entry may have different index attributes (DW_IDX_???) attached to it.
The last segment consists of a list of entries, which is a 0-terminated list referenced by the name table and interpreted with the help of the abbreviation table.
Definition at line 384 of file DWARFAcceleratorTable.h.
Definition at line 832 of file DWARFAcceleratorTable.h.
|
inline |
Definition at line 822 of file DWARFAcceleratorTable.h.
References llvm::DWARFAcceleratorTable::AccelSection, llvm::DWARFAcceleratorTable::DWARFAcceleratorTable(), and llvm::DWARFAcceleratorTable::StringSection.
Referenced by llvm::DWARFDebugNames::ValueIterator::ValueIterator().
|
inline |
Definition at line 833 of file DWARFAcceleratorTable.h.
Referenced by llvm::DWARFDebugNames::ValueIterator::ValueIterator().
|
overridevirtual |
Implements llvm::DWARFAcceleratorTable.
Definition at line 955 of file DWARFAcceleratorTable.cpp.
References LLVM_DUMP_METHOD.
Referenced by llvm::DWARFContext::dump().
|
inline |
Definition at line 834 of file DWARFAcceleratorTable.h.
iterator_range< DWARFDebugNames::ValueIterator > DWARFDebugNames::equal_range | ( | StringRef | Key | ) | const |
Look up all entries in the accelerator table matching Key
.
Definition at line 1057 of file DWARFAcceleratorTable.cpp.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, and llvm::make_range().
|
overridevirtual |
Implements llvm::DWARFAcceleratorTable.
Definition at line 938 of file DWARFAcceleratorTable.cpp.
References llvm::DWARFAcceleratorTable::AccelSection, llvm::Next, llvm::Offset, and llvm::Error::success().
const DWARFDebugNames::NameIndex * DWARFDebugNames::getCUOrTUNameIndex | ( | uint64_t | UnitOffset | ) |
Return the Name Index covering the compile unit or local type unit at UnitOffset, or nullptr if there is no Name Index covering that unit.
Definition at line 1064 of file DWARFAcceleratorTable.cpp.