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:
- include/llvm/DWARFLinker/Classic/DWARFLinker.h