summaryrefslogtreecommitdiff
path: root/lldb/source/Core/AddressResolverFileLine.cpp
diff options
context:
space:
mode:
authorAlex Langford <alangford@apple.com>2023-05-04 18:19:15 -0700
committerAlex Langford <alangford@apple.com>2023-05-05 11:19:21 -0700
commite9eaf7b430ee69e8ef145884cbc8fa3ef8bd3237 (patch)
tree54729f00ee50f97d280b5a0e7b8b14b2b6c878d3 /lldb/source/Core/AddressResolverFileLine.cpp
parent9c377c53da4771389fbd65e99e1615d99c257bdf (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.cpp32
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;