LLVM  10.0.0svn
InlineInfo.cpp File Reference
#include "llvm/DebugInfo/GSYM/FileEntry.h"
#include "llvm/DebugInfo/GSYM/FileWriter.h"
#include "llvm/DebugInfo/GSYM/InlineInfo.h"
#include "llvm/Support/DataExtractor.h"
#include <algorithm>
#include <inttypes.h>
Include dependency graph for InlineInfo.cpp:

Go to the source code of this file.


static bool getInlineStackHelper (const InlineInfo &II, uint64_t Addr, std::vector< const InlineInfo *> &InlineStack)
static llvm::Expected< InlineInfodecode (DataExtractor &Data, uint64_t &Offset, uint64_t BaseAddr)
 Decode an InlineInfo in Data at the specified offset. More...

Function Documentation

◆ decode()

static llvm::Expected<InlineInfo> decode ( DataExtractor Data,
uint64_t &  Offset,
uint64_t  BaseAddr 

Decode an InlineInfo in Data at the specified offset.

A local helper function to decode InlineInfo objects. This function is called recursively when parsing child InlineInfo objects.

DataThe data extractor to decode from.
OffsetThe offset within Data to decode from.
BaseAddrThe base address to use when decoding address ranges.
An InlineInfo or an error describing the issue that was encountered during decoding.

Definition at line 73 of file InlineInfo.cpp.

References llvm::gsym::InlineInfo::CallFile, llvm::gsym::InlineInfo::CallLine, llvm::gsym::InlineInfo::Children, llvm::createStringError(), llvm::gsym::AddressRanges::decode(), llvm::gsym::InlineInfo::decode(), llvm::gsym::AddressRanges::empty(), llvm::Expected< T >::get(), llvm::DataExtractor::getU32(), llvm::DataExtractor::getU8(), llvm::DataExtractor::getULEB128(), llvm::DataExtractor::isValidOffset(), llvm::DataExtractor::isValidOffsetForDataOfSize(), llvm::gsym::InlineInfo::Name, llvm::gsym::InlineInfo::Ranges, and llvm::Expected< T >::takeError().

Referenced by llvm::gsym::InlineInfo::decode(), and encodeCnt().

◆ getInlineStackHelper()

static bool getInlineStackHelper ( const InlineInfo II,
uint64_t  Addr,
std::vector< const InlineInfo *> &  InlineStack