LLVM: llvm::gsym::LookupResult Struct Reference (original) (raw)
#include "[llvm/DebugInfo/GSYM/LookupResult.h](LookupResult%5F8h%5Fsource.html)"
| Public Attributes | |
|---|---|
| uint64_t | LookupAddr = 0 |
| The address that this lookup pertains to. | |
| AddressRange | FuncRange |
| The concrete function address range. | |
| StringRef | FuncName |
| The concrete function name that contains LookupAddr. | |
| SourceLocations | Locations |
| The source locations that match this address. | |
| std::vector< StringRef > | CallSiteFuncRegex |
| Function name regex patterns associated with a call site at the lookup address. |
Definition at line 39 of file LookupResult.h.
◆ getSourceFile()
| std::string LookupResult::getSourceFile | ( | uint32_t | Index | ) | const |
|---|
◆ CallSiteFuncRegex
std::vector<StringRef> llvm::gsym::LookupResult::CallSiteFuncRegex
Function name regex patterns associated with a call site at the lookup address.
This vector will be populated when:
- The lookup address matches a call site's return address in a function
- The call site has associated regex patterns that describe what functions can be called from that location
The regex patterns can be used to validate function calls during runtime checking or symbolication. For example:
- Patterns like "^foo$" indicate the call site can only call function "foo"
- Patterns like "^std::" indicate the call site can call any function in the std namespace
- Multiple patterns allow matching against a set of allowed functions
The patterns are stored as string references into the GSYM string table. This information is typically loaded from:
- DWARF debug info call site entries
- External YAML files specifying call site patterns
- Other debug info formats that encode call site constraints
The patterns will be empty if:
- The lookup address is not at the return address of a call site
- The call site has no associated function name constraints
- Call site info was not included when creating the GSYM file
Definition at line 78 of file LookupResult.h.
Referenced by llvm::gsym::FunctionInfo::lookup(), and llvm::gsym::operator<<().
◆ FuncName
◆ FuncRange
◆ Locations
The source locations that match this address.
This information will only be filled in if the FunctionInfo contains a line table. If an address is for a concrete function with no inlined functions, this array will have one entry. If an address points to an inline function, there will be one SourceLocation for each inlined function with the last entry pointing to the concrete function itself. This allows one address to generate multiple locations and allows unwinding of inline call stacks. The deepest inline function will appear at index zero in the source locations array, and the concrete function will appear at the end of the array.
Definition at line 52 of file LookupResult.h.
Referenced by getSourceFile(), llvm::gsym::FunctionInfo::lookup(), and llvm::gsym::operator<<().
◆ LookupAddr
uint64_t llvm::gsym::LookupResult::LookupAddr = 0
The documentation for this struct was generated from the following files:
- include/llvm/DebugInfo/GSYM/LookupResult.h
- lib/DebugInfo/GSYM/LookupResult.cpp