class DwarfEmitter
Declaration
class DwarfEmitter { /* full declaration omitted */ };
Description
DwarfEmitter presents interface to generate all debug info tables.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:87
Method Overview
- public virtual void emitAbbrevs(const std::vector<std::unique_ptr<DIEAbbrev>> & Abbrevs, unsigned int DwarfVersion)
- public virtual void emitAppleNames(AccelTable<llvm::AppleAccelTableStaticOffsetData> & Table)
- public virtual void emitAppleNamespaces(AccelTable<llvm::AppleAccelTableStaticOffsetData> & Table)
- public virtual void emitAppleObjc(AccelTable<llvm::AppleAccelTableStaticOffsetData> & Table)
- public virtual void emitAppleTypes(AccelTable<llvm::AppleAccelTableStaticTypeData> & Table)
- public virtual void emitCIE(llvm::StringRef CIEBytes)
- public virtual void emitCompileUnitHeader(llvm::CompileUnit & Unit)
- public virtual void emitDIE(llvm::DIE & Die)
- public virtual void emitDebugNames(AccelTable<llvm::DWARF5AccelTableStaticData> & Table)
- public virtual void emitFDE(uint32_t CIEOffset, uint32_t AddreSize, uint32_t Address, llvm::StringRef Bytes)
- public virtual void emitLineTableForUnit(llvm::MCDwarfLineTableParams Params, llvm::StringRef PrologueBytes, unsigned int MinInstLength, std::vector<DWARFDebugLine::Row> & Rows, unsigned int AdddressSize)
- public virtual void emitLocationsForUnit(const llvm::CompileUnit & Unit, llvm::DWARFContext & Dwarf, std::function<void (StringRef, SmallVectorImpl<uint8_t> &)> ProcessExpr)
- public virtual void emitPaperTrailWarningsDie(const llvm::Triple & Triple, llvm::DIE & Die)
- public virtual void emitPubNamesForUnit(const llvm::CompileUnit & Unit)
- public virtual void emitPubTypesForUnit(const llvm::CompileUnit & Unit)
- public virtual void emitRangesEntries(int64_t UnitPcOffset, uint64_t OrigLowPc, const FunctionIntervals::const_iterator & FuncRange, const std::vector<DWARFDebugRangeList::RangeListEntry> & Entries, unsigned int AddressSize)
- public virtual void emitSectionContents(const object::ObjectFile & Obj, llvm::StringRef SecName)
- public virtual void emitStrings(const llvm::NonRelocatableStringpool & Pool)
- public virtual void emitUnitRangesEntries(llvm::CompileUnit & Unit, bool DoRangesSection)
- public virtual uint64_t getDebugInfoSectionSize() const
- public virtual uint64_t getFrameSectionSize() const
- public virtual uint64_t getLineSectionSize() const
- public virtual uint64_t getRangesSectionSize() const
- public virtual void translateLineTable(llvm::DataExtractor LineData, uint64_t Offset)
- public virtual ~DwarfEmitter()
Methods
¶virtual void emitAbbrevs(
const std::vector<std::unique_ptr<DIEAbbrev>>&
Abbrevs,
unsigned int DwarfVersion)
virtual void emitAbbrevs(
const std::vector<std::unique_ptr<DIEAbbrev>>&
Abbrevs,
unsigned int DwarfVersion)
Description
Emit the abbreviation table \p Abbrevs to the debug_abbrev section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:101
Parameters
- const std::vector<std::unique_ptr<DIEAbbrev>>& Abbrevs
- unsigned int DwarfVersion
¶virtual void emitAppleNames(
AccelTable<
llvm::AppleAccelTableStaticOffsetData>&
Table)
virtual void emitAppleNames(
AccelTable<
llvm::AppleAccelTableStaticOffsetData>&
Table)
Description
Emit Apple names accelerator table.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:117
Parameters
- AccelTable<llvm::AppleAccelTableStaticOffsetData>& Table
¶virtual void emitAppleNamespaces(
AccelTable<
llvm::AppleAccelTableStaticOffsetData>&
Table)
virtual void emitAppleNamespaces(
AccelTable<
llvm::AppleAccelTableStaticOffsetData>&
Table)
Description
Emit Apple namespaces accelerator table.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:113
Parameters
- AccelTable<llvm::AppleAccelTableStaticOffsetData>& Table
¶virtual void emitAppleObjc(
AccelTable<
llvm::AppleAccelTableStaticOffsetData>&
Table)
virtual void emitAppleObjc(
AccelTable<
llvm::AppleAccelTableStaticOffsetData>&
Table)
Description
Emit Apple Objective-C accelerator table.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:121
Parameters
- AccelTable<llvm::AppleAccelTableStaticOffsetData>& Table
¶virtual void emitAppleTypes(
AccelTable<
llvm::AppleAccelTableStaticTypeData>&
Table)
virtual void emitAppleTypes(
AccelTable<
llvm::AppleAccelTableStaticTypeData>&
Table)
Description
Emit Apple type accelerator table.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:125
Parameters
- AccelTable<llvm::AppleAccelTableStaticTypeData>& Table
¶virtual void emitCIE(llvm::StringRef CIEBytes)
virtual void emitCIE(llvm::StringRef CIEBytes)
Description
Emit a CIE.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:159
Parameters
- llvm::StringRef CIEBytes
¶virtual void emitCompileUnitHeader(
llvm::CompileUnit& Unit)
virtual void emitCompileUnitHeader(
llvm::CompileUnit& Unit)
Description
Emit the compilation unit header for \p 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().
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:178
Parameters
- llvm::CompileUnit& Unit
¶virtual void emitDIE(llvm::DIE& Die)
virtual void emitDIE(llvm::DIE& Die)
Description
Recursively emit the DIE tree rooted at \p Die.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:181
Parameters
- llvm::DIE& Die
¶virtual void emitDebugNames(
AccelTable<llvm::DWARF5AccelTableStaticData>&
Table)
virtual void emitDebugNames(
AccelTable<llvm::DWARF5AccelTableStaticData>&
Table)
Description
Emit DWARF debug names.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:109
Parameters
- AccelTable<llvm::DWARF5AccelTableStaticData>& Table
¶virtual void emitFDE(uint32_t CIEOffset,
uint32_t AddreSize,
uint32_t Address,
llvm::StringRef Bytes)
virtual void emitFDE(uint32_t CIEOffset,
uint32_t AddreSize,
uint32_t Address,
llvm::StringRef Bytes)
Description
Emit an FDE with data \p Bytes.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:162
Parameters
- uint32_t CIEOffset
- uint32_t AddreSize
- uint32_t Address
- llvm::StringRef Bytes
¶virtual void emitLineTableForUnit(
llvm::MCDwarfLineTableParams Params,
llvm::StringRef PrologueBytes,
unsigned int MinInstLength,
std::vector<DWARFDebugLine::Row>& Rows,
unsigned int AdddressSize)
virtual void emitLineTableForUnit(
llvm::MCDwarfLineTableParams Params,
llvm::StringRef PrologueBytes,
unsigned int MinInstLength,
std::vector<DWARFDebugLine::Row>& Rows,
unsigned int AdddressSize)
Description
Emit the line table described in \p Rows into the debug_line section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:146
Parameters
- llvm::MCDwarfLineTableParams Params
- llvm::StringRef PrologueBytes
- unsigned int MinInstLength
- std::vector<DWARFDebugLine::Row>& Rows
- unsigned int AdddressSize
¶virtual void emitLocationsForUnit(
const llvm::CompileUnit& Unit,
llvm::DWARFContext& Dwarf,
std::function<void(StringRef,
SmallVectorImpl<uint8_t>&)>
ProcessExpr)
virtual void emitLocationsForUnit(
const llvm::CompileUnit& Unit,
llvm::DWARFContext& Dwarf,
std::function<void(StringRef,
SmallVectorImpl<uint8_t>&)>
ProcessExpr)
Description
Emit the debug_loc contribution for \p Unit by copying the entries from\p Dwarf and offsetting them. Update the location attributes to point to the new entries.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:168
Parameters
- const llvm::CompileUnit& Unit
- llvm::DWARFContext& Dwarf
- std::function<void(StringRef, SmallVectorImpl<uint8_t>&)> ProcessExpr
¶virtual void emitPaperTrailWarningsDie(
const llvm::Triple& Triple,
llvm::DIE& Die)
virtual void emitPaperTrailWarningsDie(
const llvm::Triple& Triple,
llvm::DIE& Die)
Description
Emit DIE containing warnings.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:92
Parameters
- const llvm::Triple& Triple
- llvm::DIE& Die
¶virtual void emitPubNamesForUnit(
const llvm::CompileUnit& Unit)
virtual void emitPubNamesForUnit(
const llvm::CompileUnit& Unit)
Description
Emit the .debug_pubnames contribution for \p Unit.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:153
Parameters
- const llvm::CompileUnit& Unit
¶virtual void emitPubTypesForUnit(
const llvm::CompileUnit& Unit)
virtual void emitPubTypesForUnit(
const llvm::CompileUnit& Unit)
Description
Emit the .debug_pubtypes contribution for \p Unit.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:156
Parameters
- const llvm::CompileUnit& Unit
¶virtual void emitRangesEntries(
int64_t UnitPcOffset,
uint64_t OrigLowPc,
const FunctionIntervals::const_iterator&
FuncRange,
const std::vector<
DWARFDebugRangeList::RangeListEntry>&
Entries,
unsigned int AddressSize)
virtual void emitRangesEntries(
int64_t UnitPcOffset,
uint64_t OrigLowPc,
const FunctionIntervals::const_iterator&
FuncRange,
const std::vector<
DWARFDebugRangeList::RangeListEntry>&
Entries,
unsigned int AddressSize)
Description
Emit debug_ranges for \p FuncRange by translating the original \p Entries.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:129
Parameters
- int64_t UnitPcOffset
- uint64_t OrigLowPc
- const FunctionIntervals::const_iterator& FuncRange
- const std::vector< DWARFDebugRangeList::RangeListEntry>& Entries
- unsigned int AddressSize
¶virtual void emitSectionContents(
const object::ObjectFile& Obj,
llvm::StringRef SecName)
virtual void emitSectionContents(
const object::ObjectFile& Obj,
llvm::StringRef SecName)
Description
Emit section named SecName with content equals to corresponding section in Obj.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:96
Parameters
- const object::ObjectFile& Obj
- llvm::StringRef SecName
¶virtual void emitStrings(
const llvm::NonRelocatableStringpool& Pool)
virtual void emitStrings(
const llvm::NonRelocatableStringpool& Pool)
Description
Emit the string table described by \p Pool.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:105
Parameters
- const llvm::NonRelocatableStringpool& Pool
¶virtual void emitUnitRangesEntries(
llvm::CompileUnit& Unit,
bool DoRangesSection)
virtual void emitUnitRangesEntries(
llvm::CompileUnit& Unit,
bool DoRangesSection)
Description
Emit debug_aranges entries for \p Unit and if \p DoRangesSection is true, also emit the debug_ranges entries for the DW_TAG_compile_unit's DW_AT_ranges attribute.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:138
Parameters
- llvm::CompileUnit& Unit
- bool DoRangesSection
¶virtual uint64_t getDebugInfoSectionSize() const
virtual uint64_t getDebugInfoSectionSize() const
Description
Returns size of generated .debug_info section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:193
¶virtual uint64_t getFrameSectionSize() const
virtual uint64_t getFrameSectionSize() const
Description
Returns size of generated .debug_frame section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:187
¶virtual uint64_t getLineSectionSize() const
virtual uint64_t getLineSectionSize() const
Description
Returns size of generated .debug_line section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:184
¶virtual uint64_t getRangesSectionSize() const
virtual uint64_t getRangesSectionSize() const
Description
Returns size of generated .debug_ranges section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:190
¶virtual void translateLineTable(
llvm::DataExtractor LineData,
uint64_t Offset)
virtual void translateLineTable(
llvm::DataExtractor LineData,
uint64_t Offset)
Description
Copy the debug_line over to the updated binary while unobfuscating the file names and directories.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:143
Parameters
- llvm::DataExtractor LineData
- uint64_t Offset
¶virtual ~DwarfEmitter()
virtual ~DwarfEmitter()
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:89