LLVM: llvm::gsym Namespace Reference (original) (raw)

Classes
struct CallSiteInfo
struct CallSiteInfoCollection
class CallSiteInfoLoader
struct CUInfo
class DwarfTransformer
A class that transforms the DWARF in a DWARFContext into GSYM information by populating the GsymCreator object that it is constructed with. More...
struct FileEntry
Files in GSYM are contained in FileEntry structs where we split the directory and basename into two different strings in the string table. More...
class FileWriter
A simplified binary data writer class that doesn't require targets, target definitions, architectures, or require any other optional compile time libraries to be enabled via the build process. More...
struct FunctionInfo
Function information in GSYM files encodes information for one contiguous address range. More...
class GsymContext
GSYM DI Context This data structure is the top level entity that deals with GSYM symbolication. More...
class GsymCreator
GsymCreator is used to emit GSYM data to a stand alone file or section within a file. More...
class GsymReader
GsymReader is used to read GSYM data from a file or buffer. More...
struct Header
The GSYM header. More...
struct InlineInfo
Inline information stores the name of the inline function along with an array of address ranges. More...
struct LineEntry
Line entries are used to encode the line tables in FunctionInfo objects. More...
class LineTable
LineTable class contains deserialized versions of line tables for each function's address ranges. More...
struct LookupResult
struct MergedFunctionsInfo
class ObjectFileTransformer
class OutputAggregator
struct SourceLocation
struct StringTable
String tables in GSYM files are required to start with an empty string at offset zero. More...
Functions
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const CallSiteInfo &CSI)
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const CallSiteInfoCollection &CSIC)
LLVM_ABI void skipRange (DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
LLVM_ABI uint64_t skipRanges (DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
bool operator== (const FunctionInfo &LHS, const FunctionInfo &RHS)
bool operator!= (const FunctionInfo &LHS, const FunctionInfo &RHS)
bool operator< (const FunctionInfo &LHS, const FunctionInfo &RHS)
This sorting will order things consistently by address range first, but then followed by increasing levels of debug info like inline information and line tables.
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const FunctionInfo &R)
LLVM_ABI bool operator== (const Header &LHS, const Header &RHS)
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const llvm::gsym::Header &H)
bool operator== (const InlineInfo &LHS, const InlineInfo &RHS)
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const InlineInfo &FI)
raw_ostream & operator<< (raw_ostream &OS, const LineEntry &LE)
bool operator== (const LineEntry &LHS, const LineEntry &RHS)
bool operator!= (const LineEntry &LHS, const LineEntry &RHS)
bool operator< (const LineEntry &LHS, const LineEntry &RHS)
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const gsym::LineTable &LT)
bool operator== (const SourceLocation &LHS, const SourceLocation &RHS)
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const SourceLocation &R)
bool operator== (const LookupResult &LHS, const LookupResult &RHS)
LLVM_ABI raw_ostream & operator<< (raw_ostream &OS, const LookupResult &R)
LLVM_ABI bool operator== (const MergedFunctionsInfo &LHS, const MergedFunctionsInfo &RHS)
raw_ostream & operator<< (raw_ostream &OS, const StringTable &S)
LLVM_ABI AddressRange decodeRange (DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)
AddressRange objects are encoded and decoded to be relative to a base address.
LLVM_ABI void encodeRange (const AddressRange &Range, FileWriter &O, uint64_t BaseAddr)
LLVM_ABI void decodeRanges (AddressRanges &Ranges, DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)
Address ranges are decoded and encoded to be relative to a base address.
LLVM_ABI void encodeRanges (const AddressRanges &Ranges, FileWriter &O, uint64_t BaseAddr)

SourceLocations

decodeRange()

decodeRanges()

encodeRange()

encodeRanges()

operator!=() [1/2]

operator!=() [2/2]

operator<() [1/2]

This sorting will order things consistently by address range first, but then followed by increasing levels of debug info like inline information and line tables.

We might end up with a FunctionInfo from debug info that will have the same range as one from the symbol table, but we want to quickly be able to sort and use the best version when creating the final GSYM file. This function compares the inline information as we have seen cases where LTO can generate a wide array of differing inline information, mostly due to messing up the address ranges for inlined functions, so the inline information with the most entries will appeear last. If the inline information match, either by both function infos not having any or both being exactly the same, we will then compare line tables. Comparing line tables allows the entry with the most line entries to appear last. This ensures we are able to save the FunctionInfo with the most debug info into the GSYM file.

Definition at line 237 of file FunctionInfo.h.

References LHS, and RHS.

operator<() [2/2]

operator<<() [1/10]

operator<<() [2/10]

operator<<() [3/10]

operator<<() [4/10]

operator<<() [5/10]

operator<<() [6/10]

operator<<() [7/10]

operator<<() [8/10]

operator<<() [9/10]

operator<<() [10/10]

operator==() [1/7]

operator==() [2/7]

operator==() [3/7]

operator==() [4/7]

operator==() [5/7]

operator==() [6/7]

operator==() [7/7]

skipRange()

Skip an address range object in the specified data a the specified offset.

Parameters

Data The binary stream to read the data from.
Offset The byte offset within Data.

Definition at line 50 of file ExtractRanges.cpp.

References llvm::Data, and llvm::Offset.

Referenced by skipRanges().

skipRanges()

Skip an address range object in the specified data a the specified offset.

Parameters

Data The binary stream to read the data from.
Offset The byte offset within Data.

Returns

The number of address ranges that were skipped.

Definition at line 55 of file ExtractRanges.cpp.

References llvm::Data, I, llvm::Offset, and skipRange().

Referenced by skip().

GSYM_CIGAM

uint32_t llvm::gsym::GSYM_CIGAM = 0x4d595347 constexpr

GSYM_MAGIC

uint32_t llvm::gsym::GSYM_MAGIC = 0x4753594d constexpr

GSYM_MAX_UUID_SIZE

size_t llvm::gsym::GSYM_MAX_UUID_SIZE = 20 constexpr

GSYM_VERSION