summaryrefslogtreecommitdiff
path: root/llvm/lib/DebugInfo/GSYM/LineTable.cpp
AgeCommit message (Collapse)Author
2023-11-06Fix line table lookups in line tables with multiple lines with the sa… ↵Greg Clayton
(#70879) Fix line table lookups in line tables with multiple lines with the same address. Compilers emit line tables that have multiple line table entries with the same address. When doing lookups, we always need to use the last line entry if a lookup address matches the address of one or more line entries. This is because the size of an address range for a line uses the next line entry to figure out how big the current line entry is. If the next line entry has the same address, that means the current line entry has a size of zero, so no bytes correspond to the line entry. This patch ensures that lookups will always pick the last matching line entry when the lookup address matches more than one line entry.
2020-02-10Revert "Remove redundant "std::move"s in return statements"Bill Wendling
The build failed with error: call to deleted constructor of 'llvm::Error' errors. This reverts commit 1c2241a7936bf85aa68aef94bd40c3ba77d8ddf2.
2020-02-10Remove redundant "std::move"s in return statementsBill Wendling
2019-12-05Add lookup functions for efficient lookups of addresses when using ↵Greg Clayton
GsymReader classes. Summary: Lookup functions are designed to not fully decode a FunctionInfo, LineTable or InlineInfo, they decode only what is needed into a LookupResult object. This allows lookups to avoid costly memory allocations and avoid parsing large amounts of information one a suitable match is found. LookupResult objects contain the address that was looked up, the concrete function address range, the name of the concrete function, and a list of source locations. One for each inline function, and one for the concrete function. This allows one address to turn into multiple frames and improves the signal you get when symbolicating addresses in GSYM files. Reviewers: labath, aprantl Subscribers: mgorny, hiraditya, llvm-commits, lldb-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70993
2019-09-11Add a LineTable class to GSYM and test it.Greg Clayton
This patch adds the ability to create a gsym::LineTable object, populate it, encode and decode it and test all functionality. The full format of the LineTable encoding is specified in the header file LineTable.h. Differential Revision: https://reviews.llvm.org/D66602 llvm-svn: 371657