[Lldb-commits] [PATCH] D14536: Add empty symbols to symtab for skipped symbols

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Wed Nov 11 10:18:04 PST 2015


clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.

Symbols are the #1 most expensive item memory wise in LLDB right now. We remove many symbols in Mach-O and we set the m_uid of each symbol to the original symbol table index. There is a binary search for a symbol by lldb::user_id_t that is efficient:

Symbol *
Symtab::FindSymbolByID (lldb::user_id_t symbol_uid) const
{

  Mutex::Locker locker (m_mutex);
  
  Symbol *symbol = (Symbol*)::bsearch (&symbol_uid, 
                                       &m_symbols[0], 
                                       m_symbols.size(), 
                                       sizeof(m_symbols[0]),
                                       CompareSymbolID);
  return symbol;

}

So just make sure to make your symbols have the correct lldb::user_id_t (the original symbol table index) and don't add empty useless symbols.


http://reviews.llvm.org/D14536





More information about the lldb-commits mailing list