13 #ifndef LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZE_H
14 #define LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZE_H
27 using namespace object;
34 bool UseSymbolTable : 1;
36 bool RelativeAddresses : 1;
40 bool UseSymbolTable =
true,
bool Demangle =
true,
41 bool RelativeAddresses =
false, std::string
DefaultArch =
"")
42 : PrintFunctions(PrintFunctions), UseSymbolTable(UseSymbolTable),
43 Demangle(Demangle), RelativeAddresses(RelativeAddresses),
53 uint64_t ModuleOffset);
55 uint64_t ModuleOffset);
57 uint64_t ModuleOffset);
59 static std::string DemangleName(
const std::string &
Name,
65 typedef std::pair<ObjectFile*, ObjectFile*> ObjectPair;
72 getOrCreateModuleInfo(
const std::string &ModuleName);
74 ObjectFile *lookUpDsymFile(
const std::string &Path,
76 const std::string &ArchName);
77 ObjectFile *lookUpDebuglinkObject(
const std::string &Path,
79 const std::string &ArchName);
83 const std::string &ArchName);
89 const std::string &ArchName);
91 std::map<std::string, std::unique_ptr<SymbolizableModule>> Modules;
94 std::map<std::pair<std::string, std::string>, ObjectPair>
95 ObjectPairForPathArch;
98 std::map<std::string, OwningBinary<Binary>> BinaryForPath;
102 std::map<std::pair<std::string, std::string>, std::unique_ptr<ObjectFile>>
103 ObjectForUBPathAndArch;
This class is the base class for all object file types.
DINameKind
A DINameKind is passed to name search methods to specify a preference regarding the type of name reso...
Tagged union holding either a T or a Error.
static StringRef DefaultArch
std::vector< std::string > DsymHints
FunctionNameKind PrintFunctions
DILineInfoSpecifier::FunctionNameKind FunctionNameKind
DINameKind FunctionNameKind
Provides ErrorOr<T> smart pointer.
Options(FunctionNameKind PrintFunctions=FunctionNameKind::LinkageName, bool UseSymbolTable=true, bool Demangle=true, bool RelativeAddresses=false, std::string DefaultArch="")
LLVMSymbolizer(const Options &Opts=Options())