[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