aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp')
-rw-r--r--llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp8
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);
}
}