LLVM: llvm::dwarf_linker::classic::DwarfEmitter Class Reference (original) (raw)

DwarfEmitter presents interface to generate all debug info tables. More...

#include "[llvm/DWARFLinker/Classic/DWARFLinker.h](Classic%5F2DWARFLinker%5F8h%5Fsource.html)"

Public Member Functions
virtual ~DwarfEmitter ()=default
virtual void emitSectionContents (StringRef SecData, DebugSectionKind SecKind)=0
Emit section named SecName with data SecData.
virtual void emitAbbrevs (const std::vector< std::unique_ptr< DIEAbbrev > > &Abbrevs, unsigned DwarfVersion)=0
Emit the abbreviation table Abbrevs to the .debug_abbrev section.
virtual void emitStrings (const NonRelocatableStringpool &Pool)=0
Emit the string table described by Pool into .debug_str table.
virtual void emitStringOffsets (const SmallVector< uint64_t > &StringOffsets, uint16_t TargetDWARFVersion)=0
Emit the debug string offset table described by StringOffsets into the .debug_str_offsets table.
virtual void emitLineStrings (const NonRelocatableStringpool &Pool)=0
Emit the string table described by Pool into .debug_line_str table.
virtual void emitDebugNames (DWARF5AccelTable &Table)=0
Emit DWARF debug names.
virtual void emitAppleNamespaces (AccelTable< AppleAccelTableStaticOffsetData > &Table)=0
Emit Apple namespaces accelerator table.
virtual void emitAppleNames (AccelTable< AppleAccelTableStaticOffsetData > &Table)=0
Emit Apple names accelerator table.
virtual void emitAppleObjc (AccelTable< AppleAccelTableStaticOffsetData > &Table)=0
Emit Apple Objective-C accelerator table.
virtual void emitAppleTypes (AccelTable< AppleAccelTableStaticTypeData > &Table)=0
Emit Apple type accelerator table.
virtual MCSymbol * emitDwarfDebugRangeListHeader (const CompileUnit &Unit)=0
Emit debug ranges (.debug_ranges, .debug_rnglists) header.
virtual void emitDwarfDebugRangeListFragment (const CompileUnit &Unit, const AddressRanges &LinkedRanges, PatchLocation Patch, DebugDieValuePool &AddrPool)=0
Emit debug ranges (.debug_ranges, .debug_rnglists) fragment.
virtual void emitDwarfDebugRangeListFooter (const CompileUnit &Unit, MCSymbol *EndLabel)=0
Emit debug ranges (.debug_ranges, .debug_rnglists) footer.
virtual MCSymbol * emitDwarfDebugLocListHeader (const CompileUnit &Unit)=0
Emit debug locations (.debug_loc, .debug_loclists) header.
virtual void emitDwarfDebugLocListFragment (const CompileUnit &Unit, const DWARFLocationExpressionsVector &LinkedLocationExpression, PatchLocation Patch, DebugDieValuePool &AddrPool)=0
Emit debug locations (.debug_loc, .debug_loclists) fragment.
virtual void emitDwarfDebugLocListFooter (const CompileUnit &Unit, MCSymbol *EndLabel)=0
Emit debug locations (.debug_loc, .debug_loclists) footer.
virtual MCSymbol * emitDwarfDebugAddrsHeader (const CompileUnit &Unit)=0
Emit .debug_addr header.
virtual void emitDwarfDebugAddrs (const SmallVector< uint64_t > &Addrs, uint8_t AddrSize)=0
Emit the addresses described by Addrs into the .debug_addr section.
virtual void emitDwarfDebugAddrsFooter (const CompileUnit &Unit, MCSymbol *EndLabel)=0
Emit .debug_addr footer.
virtual void emitDwarfDebugArangesTable (const CompileUnit &Unit, const AddressRanges &LinkedRanges)=0
Emit .debug_aranges entries for Unit.
virtual void emitLineTableForUnit (const DWARFDebugLine::LineTable &LineTable, const CompileUnit &Unit, OffsetsStringPool &DebugStrPool, OffsetsStringPool &DebugLineStrPool, std::vector< uint64_t > *RowOffsets=nullptr)=0
Emit specified LineTable into .debug_line table.
virtual void emitPubNamesForUnit (const CompileUnit &Unit)=0
Emit the .debug_pubnames contribution for Unit.
virtual void emitPubTypesForUnit (const CompileUnit &Unit)=0
Emit the .debug_pubtypes contribution for Unit.
virtual void emitCIE (StringRef CIEBytes)=0
Emit a CIE.
virtual void emitFDE (uint32_t CIEOffset, uint32_t AddreSize, uint64_t Address, StringRef Bytes)=0
Emit an FDE with data Bytes.
virtual void emitCompileUnitHeader (CompileUnit &Unit, unsigned DwarfVersion)=0
Emit the compilation unit header for Unit in the .debug_info section.
virtual void emitDIE (DIE &Die)=0
Recursively emit the DIE tree rooted at Die.
virtual void emitMacroTables (DWARFContext *Context, const Offset2UnitMap &UnitMacroMap, OffsetsStringPool &StringPool)=0
Emit all available macro tables(DWARFv4 and DWARFv5).
virtual uint64_t getLineSectionSize () const =0
Returns size of generated .debug_line section.
virtual uint64_t getFrameSectionSize () const =0
Returns size of generated .debug_frame section.
virtual uint64_t getRangesSectionSize () const =0
Returns size of generated .debug_ranges section.
virtual uint64_t getRngListsSectionSize () const =0
Returns size of generated .debug_rnglists section.
virtual uint64_t getDebugInfoSectionSize () const =0
Returns size of generated .debug_info section.
virtual uint64_t getDebugMacInfoSectionSize () const =0
Returns size of generated .debug_macinfo section.
virtual uint64_t getDebugMacroSectionSize () const =0
Returns size of generated .debug_macro section.
virtual uint64_t getLocListsSectionSize () const =0
Returns size of generated .debug_loclists section.
virtual uint64_t getDebugAddrSectionSize () const =0
Returns size of generated .debug_addr section.
virtual void finish ()=0
Dump the file to the disk.

DwarfEmitter presents interface to generate all debug info tables.

Definition at line 41 of file DWARFLinker.h.

virtual llvm::dwarf_linker::classic::DwarfEmitter::~DwarfEmitter ( ) virtualdefault

emitAbbrevs()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitAbbrevs ( const std::vector< std::unique_ptr< DIEAbbrev > > & Abbrevs, unsigned DwarfVersion ) pure virtual

emitAppleNames()

emitAppleNamespaces()

emitAppleObjc()

emitAppleTypes()

emitCIE()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitCIE ( StringRef CIEBytes) pure virtual

emitCompileUnitHeader()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitCompileUnitHeader ( CompileUnit & Unit, unsigned DwarfVersion ) pure virtual

Emit the compilation unit header for Unit in the .debug_info section.

As a side effect, this also switches the current Dwarf version of the MC layer to the one of U.getOrigUnit().

Implemented in llvm::dwarf_linker::classic::DwarfStreamer.

emitDebugNames()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitDebugNames ( DWARF5AccelTable & Table) pure virtual

emitDIE()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitDIE ( DIE & Die) pure virtual

emitDwarfDebugAddrs()

emitDwarfDebugAddrsFooter()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitDwarfDebugAddrsFooter ( const CompileUnit & Unit, MCSymbol * EndLabel ) pure virtual

emitDwarfDebugAddrsHeader()

virtual MCSymbol * llvm::dwarf_linker::classic::DwarfEmitter::emitDwarfDebugAddrsHeader ( const CompileUnit & Unit) pure virtual

emitDwarfDebugArangesTable()

emitDwarfDebugLocListFooter()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitDwarfDebugLocListFooter ( const CompileUnit & Unit, MCSymbol * EndLabel ) pure virtual

emitDwarfDebugLocListFragment()

emitDwarfDebugLocListHeader()

virtual MCSymbol * llvm::dwarf_linker::classic::DwarfEmitter::emitDwarfDebugLocListHeader ( const CompileUnit & Unit) pure virtual

emitDwarfDebugRangeListFooter()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitDwarfDebugRangeListFooter ( const CompileUnit & Unit, MCSymbol * EndLabel ) pure virtual

emitDwarfDebugRangeListFragment()

emitDwarfDebugRangeListHeader()

virtual MCSymbol * llvm::dwarf_linker::classic::DwarfEmitter::emitDwarfDebugRangeListHeader ( const CompileUnit & Unit) pure virtual

emitFDE()

emitLineStrings()

emitLineTableForUnit()

Emit specified LineTable into .debug_line table.

The optional parameter RowOffsets, if provided, will be populated with the offsets of each line table row in the output .debug_line section.

Implemented in llvm::dwarf_linker::classic::DwarfStreamer.

emitMacroTables()

Emit all available macro tables(DWARFv4 and DWARFv5).

Use UnitMacroMap to get compilation unit by macro table offset. Side effects: Fill [StringPool](classllvm%5F1%5F1dwarf%5F%5Flinker%5F1%5F1StringPool.html) with macro strings, update DW_AT_macro_info, DW_AT_macros attributes for corresponding compile units.

Implemented in llvm::dwarf_linker::classic::DwarfStreamer.

emitPubNamesForUnit()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitPubNamesForUnit ( const CompileUnit & Unit) pure virtual

emitPubTypesForUnit()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::emitPubTypesForUnit ( const CompileUnit & Unit) pure virtual

emitSectionContents()

emitStringOffsets()

emitStrings()

finish()

virtual void llvm::dwarf_linker::classic::DwarfEmitter::finish ( ) pure virtual

getDebugAddrSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getDebugAddrSectionSize ( ) const pure virtual

getDebugInfoSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getDebugInfoSectionSize ( ) const pure virtual

getDebugMacInfoSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getDebugMacInfoSectionSize ( ) const pure virtual

getDebugMacroSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getDebugMacroSectionSize ( ) const pure virtual

getFrameSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getFrameSectionSize ( ) const pure virtual

getLineSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getLineSectionSize ( ) const pure virtual

getLocListsSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getLocListsSectionSize ( ) const pure virtual

getRangesSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getRangesSectionSize ( ) const pure virtual

getRngListsSectionSize()

virtual uint64_t llvm::dwarf_linker::classic::DwarfEmitter::getRngListsSectionSize ( ) const pure virtual

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