From 0d9dd7df601a3a693f0a339b25ad4afa12a9e7da Mon Sep 17 00:00:00 2001 From: "Mohit K. Bhakkad" Date: Sat, 23 Jan 2016 10:36:06 +0000 Subject: [LLDB] Consider only valid symbols while resolving by address Reviewers: clayborg. Subscribers: jaydeep, bhushan, sagar, nitesh.jain, lldb-commits. Differential Revision: http://reviews.llvm.org/D16397 llvm-svn: 258621 --- lldb/source/Symbol/Symtab.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'lldb/source/Symbol/Symtab.cpp') diff --git a/lldb/source/Symbol/Symtab.cpp b/lldb/source/Symbol/Symtab.cpp index 31db57289fd..61b8317fde1 100644 --- a/lldb/source/Symbol/Symtab.cpp +++ b/lldb/source/Symbol/Symtab.cpp @@ -1073,6 +1073,26 @@ Symtab::FindSymbolContainingFileAddress (addr_t file_addr) return nullptr; } +void +Symtab::ForEachSymbolContainingFileAddresss (addr_t file_addr, std::function const &callback) +{ + Mutex::Locker locker (m_mutex); + + if (!m_file_addr_to_index_computed) + InitAddressIndexes(); + + std::vector all_addr_indexes; + + // Get all symbols with file_addr + const size_t addr_match_count = m_file_addr_to_index.FindEntryIndexesThatContains(file_addr, all_addr_indexes); + + for (size_t i=0; i &symbol_indexes, SymbolContextList &sc_list) { -- cgit v1.2.3