diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp b/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp index 6b8068a531c0..0c404327c693 100644 --- a/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp +++ b/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp @@ -351,6 +351,21 @@ std::vector<DILocal> SymbolizableObjectFile::symbolizeFrame(    return DebugInfoContext->getLocalsForAddress(ModuleOffset);  } +std::vector<object::SectionedAddress> +SymbolizableObjectFile::findSymbol(StringRef Symbol, uint64_t Offset) const { +  std::vector<object::SectionedAddress> Result; +  for (const SymbolDesc &Sym : Symbols) { +    if (Sym.Name.equals(Symbol)) { +      uint64_t Addr = Sym.Addr; +      if (Offset < Sym.Size) +        Addr += Offset; +      object::SectionedAddress A{Addr, getModuleSectionIndexForAddress(Addr)}; +      Result.push_back(A); +    } +  } +  return Result; +} +  /// Search for the first occurence of specified Address in ObjectFile.  uint64_t SymbolizableObjectFile::getModuleSectionIndexForAddress(      uint64_t Address) const {  | 
