LLVM 19.0.0git
Classes | Public Types | Public Member Functions | List of all members
llvm::DWARFDebugNames Class Reference

.debug_names section consists of one or more units. More...

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

Inheritance diagram for llvm::DWARFDebugNames:
Inheritance graph


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< ValueIteratorequal_range (StringRef Key) const
 Look up all entries in the accelerator table matching Key.
const_iterator begin () const
const_iterator end () const
const NameIndexgetCUNameIndex (uint64_t CUOffset)
 Return the Name Index covering the compile unit at CUOffset, 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 ()
virtual Error extract ()=0
virtual void dump (raw_ostream &OS) const =0
 DWARFAcceleratorTable (const DWARFAcceleratorTable &)=delete
void operator= (const DWARFAcceleratorTable &)=delete

Additional Inherited Members

- Protected Attributes inherited from llvm::DWARFAcceleratorTable
DWARFDataExtractor AccelSection
DataExtractor StringSection

Detailed Description

.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 383 of file DWARFAcceleratorTable.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 819 of file DWARFAcceleratorTable.h.

Constructor & Destructor Documentation

◆ DWARFDebugNames()

llvm::DWARFDebugNames::DWARFDebugNames ( const DWARFDataExtractor AccelSection,
DataExtractor  StringSection 

Definition at line 809 of file DWARFAcceleratorTable.h.

Member Function Documentation

◆ begin()

const_iterator llvm::DWARFDebugNames::begin ( ) const

◆ dump()

LLVM_DUMP_METHOD void DWARFDebugNames::dump ( raw_ostream OS) const

Implements llvm::DWARFAcceleratorTable.

Definition at line 955 of file DWARFAcceleratorTable.cpp.

References OS.

Referenced by llvm::DWARFContext::dump().

◆ end()

const_iterator llvm::DWARFDebugNames::end ( ) const

◆ equal_range()

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::make_range().

◆ extract()

Error DWARFDebugNames::extract ( )

◆ getCUNameIndex()

const DWARFDebugNames::NameIndex * DWARFDebugNames::getCUNameIndex ( uint64_t  CUOffset)

Return the Name Index covering the compile unit at CUOffset, or nullptr if there is no Name Index covering that unit.

Definition at line 1064 of file DWARFAcceleratorTable.cpp.

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