File indexing completed on 2026-05-10 08:43:46
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEMODULE_H
0013 #define LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEMODULE_H
0014
0015 #include "llvm/DebugInfo/DIContext.h"
0016 #include <cstdint>
0017
0018 namespace llvm {
0019 namespace symbolize {
0020
0021 using FunctionNameKind = DILineInfoSpecifier::FunctionNameKind;
0022
0023 class SymbolizableModule {
0024 public:
0025 virtual ~SymbolizableModule() = default;
0026
0027 virtual DILineInfo symbolizeCode(object::SectionedAddress ModuleOffset,
0028 DILineInfoSpecifier LineInfoSpecifier,
0029 bool UseSymbolTable) const = 0;
0030 virtual DIInliningInfo
0031 symbolizeInlinedCode(object::SectionedAddress ModuleOffset,
0032 DILineInfoSpecifier LineInfoSpecifier,
0033 bool UseSymbolTable) const = 0;
0034 virtual DIGlobal
0035 symbolizeData(object::SectionedAddress ModuleOffset) const = 0;
0036 virtual std::vector<DILocal>
0037 symbolizeFrame(object::SectionedAddress ModuleOffset) const = 0;
0038
0039 virtual std::vector<object::SectionedAddress>
0040 findSymbol(StringRef Symbol, uint64_t Offset) const = 0;
0041
0042
0043 virtual bool isWin32Module() const = 0;
0044
0045
0046
0047 virtual uint64_t getModulePreferredBase() const = 0;
0048 };
0049
0050 }
0051 }
0052
0053 #endif