LLVM 20.0.0git
Public Member Functions | Friends | List of all members
llvm::gsym::DwarfTransformer Class Reference

A class that transforms the DWARF in a DWARFContext into GSYM information by populating the GsymCreator object that it is constructed with. More...

#include "llvm/DebugInfo/GSYM/DwarfTransformer.h"

Public Member Functions

 DwarfTransformer (DWARFContext &D, GsymCreator &G)
 Create a DWARF transformer.
 
llvm::Error convert (uint32_t NumThreads, OutputAggregator &OS)
 Extract the DWARF from the supplied object file and convert it into the Gsym format in the GsymCreator object that is passed in.
 
llvm::Error verify (StringRef GsymPath, OutputAggregator &OS)
 

Friends

class DwarfTransformerTest
 

Detailed Description

A class that transforms the DWARF in a DWARFContext into GSYM information by populating the GsymCreator object that it is constructed with.

This class supports converting all DW_TAG_subprogram DIEs into gsym::FunctionInfo objects that includes line table information and inline function information. Creating a separate class to transform this data allows this class to be unit tested.

Definition at line 33 of file DwarfTransformer.h.

Constructor & Destructor Documentation

◆ DwarfTransformer()

llvm::gsym::DwarfTransformer::DwarfTransformer ( DWARFContext D,
GsymCreator G 
)
inline

Create a DWARF transformer.

Parameters
DThe DWARF to use when converting to GSYM.
GThe GSYM creator to populate with the function information from the debug info.

Definition at line 42 of file DwarfTransformer.h.

Member Function Documentation

◆ convert()

Error DwarfTransformer::convert ( uint32_t  NumThreads,
OutputAggregator OS 
)

Extract the DWARF from the supplied object file and convert it into the Gsym format in the GsymCreator object that is passed in.

Returns an error if something fatal is encountered.

Parameters
NumThreadsThe number of threads that the conversion process can use.
OSThe stream to log warnings and non fatal issues to. If NULL then don't log.
Returns
An error indicating any fatal issues that happen when parsing the DWARF, or Error::success() if all goes well.

Definition at line 559 of file DwarfTransformer.cpp.

References llvm::ThreadPoolInterface::async(), llvm::DWARFContext::compile_units(), llvm::raw_ostream::flush(), llvm::gsym::GsymCreator::getNumFunctionInfos(), llvm::gsym::OutputAggregator::GetOS(), llvm::DWARFUnit::getUnitDIE(), llvm::hardware_concurrency(), llvm::DWARFUnit::isDWOUnit(), llvm::gsym::OutputAggregator::Merge(), OS, llvm::gsym::OutputAggregator::Report(), llvm::Error::success(), llvm::dwarf::toString(), and llvm::SingleThreadExecutor::wait().

◆ verify()

llvm::Error DwarfTransformer::verify ( StringRef  GsymPath,
OutputAggregator OS 
)

Friends And Related Function Documentation

◆ DwarfTransformerTest

friend class DwarfTransformerTest
friend

Definition at line 88 of file DwarfTransformer.h.


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