diff options
Diffstat (limited to 'llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp index 6973030..0c40432 100644 --- a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp +++ b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp @@ -352,12 +352,14 @@ std::vector<DILocal> SymbolizableObjectFile::symbolizeFrame( } std::vector<object::SectionedAddress> -SymbolizableObjectFile::findSymbol(StringRef Symbol) const { +SymbolizableObjectFile::findSymbol(StringRef Symbol, uint64_t Offset) const { std::vector<object::SectionedAddress> Result; for (const SymbolDesc &Sym : Symbols) { if (Sym.Name.equals(Symbol)) { - object::SectionedAddress A{Sym.Addr, - getModuleSectionIndexForAddress(Sym.Addr)}; + uint64_t Addr = Sym.Addr; + if (Offset < Sym.Size) + Addr += Offset; + object::SectionedAddress A{Addr, getModuleSectionIndexForAddress(Addr)}; Result.push_back(A); } } |