LLVM  6.0.0svn
Classes | Macros | Typedefs | Functions
DWARFContext.cpp File Reference
#include "llvm/DebugInfo/DWARF/DWARFContext.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h"
#include "llvm/DebugInfo/DWARF/DWARFCompileUnit.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugAranges.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugFrame.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugLine.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugPubTable.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
#include "llvm/DebugInfo/DWARF/DWARFDie.h"
#include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
#include "llvm/DebugInfo/DWARF/DWARFGdbIndex.h"
#include "llvm/DebugInfo/DWARF/DWARFSection.h"
#include "llvm/DebugInfo/DWARF/DWARFUnitIndex.h"
#include "llvm/DebugInfo/DWARF/DWARFVerifier.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Object/Decompressor.h"
#include "llvm/Object/MachO.h"
#include "llvm/Object/ObjectFile.h"
#include "llvm/Object/RelocVisitor.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/DataExtractor.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cstdint>
#include <map>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for DWARFContext.cpp:

Go to the source code of this file.

Classes

struct  SymInfo
 SymInfo contains information about symbol: it's address and section index which is -1LL for absolute symbols. More...
 

Macros

#define DEBUG_TYPE   "dwarf"
 

Typedefs

using DWARFLineTable = DWARFDebugLine::LineTable
 
using FileLineInfoKind = DILineInfoSpecifier::FileLineInfoKind
 
using FunctionNameKind = DILineInfoSpecifier::FunctionNameKind
 

Functions

static void dumpUUID (raw_ostream &OS, const ObjectFile &Obj)
 Dump the UUID load command. More...
 
static void dumpDWARFv5StringOffsetsSection (raw_ostream &OS, StringRef SectionName, const DWARFObject &Obj, const DWARFSection &StringOffsetsSection, StringRef StringSection, bool LittleEndian)
 
static void dumpStringOffsetsSection (raw_ostream &OS, StringRef SectionName, const DWARFObject &Obj, const DWARFSection &StringOffsetsSection, StringRef StringSection, bool LittleEndian, unsigned MaxVersion)
 
static DWARFAcceleratorTablegetAccelTable (std::unique_ptr< DWARFAcceleratorTable > &Cache, const DWARFObject &Obj, const DWARFSection &Section, StringRef StringSection, bool IsLittleEndian)
 
static bool getFunctionNameAndStartLineForAddress (DWARFCompileUnit *CU, uint64_t Address, FunctionNameKind Kind, std::string &FunctionName, uint32_t &StartLine)
 
static Error createError (const Twine &Reason, llvm::Error E)
 
static Expected< SymInfogetSymbolInfo (const object::ObjectFile &Obj, const RelocationRef &Reloc, const LoadedObjectInfo *L, std::map< SymbolRef, SymInfo > &Cache)
 Returns the address of symbol relocation used against and a section index. More...
 
static bool isRelocScattered (const object::ObjectFile &Obj, const RelocationRef &Reloc)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "dwarf"

Definition at line 58 of file DWARFContext.cpp.

Typedef Documentation

◆ DWARFLineTable

Definition at line 60 of file DWARFContext.cpp.

◆ FileLineInfoKind

Definition at line 61 of file DWARFContext.cpp.

◆ FunctionNameKind

Definition at line 62 of file DWARFContext.cpp.

Function Documentation

◆ createError()

static Error createError ( const Twine Reason,
llvm::Error  E 
)
static

◆ dumpDWARFv5StringOffsetsSection()

static void dumpDWARFv5StringOffsetsSection ( raw_ostream OS,
StringRef  SectionName,
const DWARFObject Obj,
const DWARFSection StringOffsetsSection,
StringRef  StringSection,
bool  LittleEndian 
)
static

◆ dumpStringOffsetsSection()

static void dumpStringOffsetsSection ( raw_ostream OS,
StringRef  SectionName,
const DWARFObject Obj,
const DWARFSection StringOffsetsSection,
StringRef  StringSection,
bool  LittleEndian,
unsigned  MaxVersion 
)
static

◆ dumpUUID()

static void dumpUUID ( raw_ostream OS,
const ObjectFile &  Obj 
)
static

Dump the UUID load command.

Definition at line 71 of file DWARFContext.cpp.

References llvm::dyn_cast(), and llvm::raw_ostream::write_uuid().

Referenced by llvm::DWARFContext::dump().

◆ getAccelTable()

static DWARFAcceleratorTable& getAccelTable ( std::unique_ptr< DWARFAcceleratorTable > &  Cache,
const DWARFObject Obj,
const DWARFSection Section,
StringRef  StringSection,
bool  IsLittleEndian 
)
static

◆ getFunctionNameAndStartLineForAddress()

static bool getFunctionNameAndStartLineForAddress ( DWARFCompileUnit CU,
uint64_t  Address,
FunctionNameKind  Kind,
std::string &  FunctionName,
uint32_t StartLine 
)
static

◆ getSymbolInfo()

static Expected<SymInfo> getSymbolInfo ( const object::ObjectFile Obj,
const RelocationRef &  Reloc,
const LoadedObjectInfo L,
std::map< SymbolRef, SymInfo > &  Cache 
)
static

◆ isRelocScattered()

static bool isRelocScattered ( const object::ObjectFile Obj,
const RelocationRef &  Reloc 
)
static

Definition at line 1029 of file DWARFContext.cpp.

References llvm::dyn_cast().

Referenced by llvm::DWARFContext::defaultErrorHandler().