diff options
| author | Alex Langford <alangford@apple.com> | 2023-05-04 18:19:15 -0700 |
|---|---|---|
| committer | Alex Langford <alangford@apple.com> | 2023-05-05 11:19:21 -0700 |
| commit | e9eaf7b430ee69e8ef145884cbc8fa3ef8bd3237 (patch) | |
| tree | 54729f00ee50f97d280b5a0e7b8b14b2b6c878d3 /lldb/source/Core/AddressResolverFileLine.cpp | |
| parent | 9c377c53da4771389fbd65e99e1615d99c257bdf (diff) | |
Re-land "[lldb] Expose a const iterator for SymbolContextList"
Re-lands 04aa943be8ed5c03092e2a90112ac638360ec253 with modifications
to fix tests.
I originally reverted this because it caused a test to fail on Linux.
The problem was that I inverted a condition on accident.
Diffstat (limited to 'lldb/source/Core/AddressResolverFileLine.cpp')
| -rw-r--r-- | lldb/source/Core/AddressResolverFileLine.cpp | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/lldb/source/Core/AddressResolverFileLine.cpp b/lldb/source/Core/AddressResolverFileLine.cpp index 8152a57644fa..6ab3b8fcee15 100644 --- a/lldb/source/Core/AddressResolverFileLine.cpp +++ b/lldb/source/Core/AddressResolverFileLine.cpp @@ -45,24 +45,20 @@ AddressResolverFileLine::SearchCallback(SearchFilter &filter, // TODO: Handle SourceLocationSpec column information cu->ResolveSymbolContext(m_src_location_spec, eSymbolContextEverything, sc_list); - uint32_t sc_list_size = sc_list.GetSize(); - for (uint32_t i = 0; i < sc_list_size; i++) { - SymbolContext sc; - if (sc_list.GetContextAtIndex(i, sc)) { - Address line_start = sc.line_entry.range.GetBaseAddress(); - addr_t byte_size = sc.line_entry.range.GetByteSize(); - if (line_start.IsValid()) { - AddressRange new_range(line_start, byte_size); - m_address_ranges.push_back(new_range); - } else { - LLDB_LOGF(log, - "error: Unable to resolve address at file address 0x%" PRIx64 - " for %s:%d\n", - line_start.GetFileAddress(), - m_src_location_spec.GetFileSpec().GetFilename().AsCString( - "<Unknown>"), - m_src_location_spec.GetLine().value_or(0)); - } + for (const SymbolContext &sc : sc_list) { + Address line_start = sc.line_entry.range.GetBaseAddress(); + addr_t byte_size = sc.line_entry.range.GetByteSize(); + if (line_start.IsValid()) { + AddressRange new_range(line_start, byte_size); + m_address_ranges.push_back(new_range); + } else { + LLDB_LOGF(log, + "error: Unable to resolve address at file address 0x%" PRIx64 + " for %s:%d\n", + line_start.GetFileAddress(), + m_src_location_spec.GetFileSpec().GetFilename().AsCString( + "<Unknown>"), + m_src_location_spec.GetLine().value_or(0)); } } return Searcher::eCallbackReturnContinue; |
