LLVM 19.0.0git
Classes | Functions
DwarfTransformer.cpp File Reference
#include <thread>
#include <unordered_set>
#include "llvm/DebugInfo/DIContext.h"
#include "llvm/DebugInfo/DWARF/DWARFCompileUnit.h"
#include "llvm/DebugInfo/DWARF/DWARFContext.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ThreadPool.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/DebugInfo/GSYM/DwarfTransformer.h"
#include "llvm/DebugInfo/GSYM/FunctionInfo.h"
#include "llvm/DebugInfo/GSYM/GsymCreator.h"
#include "llvm/DebugInfo/GSYM/GsymReader.h"
#include "llvm/DebugInfo/GSYM/InlineInfo.h"
#include "llvm/DebugInfo/GSYM/OutputAggregator.h"
#include <optional>

Go to the source code of this file.


struct  llvm::gsym::CUInfo


static DWARFDie GetParentDeclContextDIE (DWARFDie &Die)
static std::optional< uint32_tgetQualifiedNameIndex (DWARFDie &Die, uint64_t Language, GsymCreator &Gsym)
 Get the GsymCreator string table offset for the qualified name for the DIE passed in.
static bool hasInlineInfo (DWARFDie Die, uint32_t Depth)
static AddressRanges ConvertDWARFRanges (const DWARFAddressRangesVector &DwarfRanges)
static void parseInlineInfo (GsymCreator &Gsym, OutputAggregator &Out, CUInfo &CUI, DWARFDie Die, uint32_t Depth, FunctionInfo &FI, InlineInfo &Parent, const AddressRanges &AllParentRanges, bool &WarnIfEmpty)
static void convertFunctionLineTable (OutputAggregator &Out, CUInfo &CUI, DWARFDie Die, GsymCreator &Gsym, FunctionInfo &FI)

Function Documentation

◆ ConvertDWARFRanges()

static AddressRanges ConvertDWARFRanges ( const DWARFAddressRangesVector DwarfRanges)

Definition at line 211 of file DwarfTransformer.cpp.

Referenced by parseInlineInfo().

◆ convertFunctionLineTable()

static void convertFunctionLineTable ( OutputAggregator Out,
DWARFDie  Die,
GsymCreator Gsym,
FunctionInfo FI 

◆ GetParentDeclContextDIE()

static DWARFDie GetParentDeclContextDIE ( DWARFDie Die)

◆ getQualifiedNameIndex()

static std::optional< uint32_t > getQualifiedNameIndex ( DWARFDie Die,
uint64_t  Language,
GsymCreator Gsym 

Get the GsymCreator string table offset for the qualified name for the DIE passed in.

This function will avoid making copies of any strings in the GsymCreator when possible. We don't need to copy a string when the string comes from our .debug_str section or is an inlined string in the .debug_info. If we create a qualified name string in this function by combining multiple strings in the DWARF string table or info, we will make a copy of the string when we add it to the string table.

Definition at line 135 of file DwarfTransformer.cpp.

References llvm::StringRef::back(), llvm::StringRef::empty(), llvm::StringRef::front(), llvm::DWARFDie::getLinkageName(), llvm::DWARFDie::getName(), GetParentDeclContextDIE(), llvm::gsym::GsymCreator::insertString(), llvm::LinkageName, Name, llvm::ShortName, llvm::StringRef::size(), llvm::StringRef::str(), and llvm::StringRef::substr().

Referenced by parseInlineInfo().

◆ hasInlineInfo()

static bool hasInlineInfo ( DWARFDie  Die,
uint32_t  Depth 

◆ parseInlineInfo()

static void parseInlineInfo ( GsymCreator Gsym,
OutputAggregator Out,
DWARFDie  Die,
uint32_t  Depth,
FunctionInfo FI,
InlineInfo Parent,
const AddressRanges AllParentRanges,
bool WarnIfEmpty