[Lldb-commits] [lldb] r180029 - Fix for expression/breakpoint setting of gnu indirect functions.
Matt Kopec
Matt.Kopec at intel.com
Mon Apr 22 10:02:05 PDT 2013
Author: mkopec
Date: Mon Apr 22 12:02:04 2013
New Revision: 180029
URL: http://llvm.org/viewvc/llvm-project?rev=180029&view=rev
Log:
Fix for expression/breakpoint setting of gnu indirect functions.
Do this until we are able to resolve these symbols to their actual implementations without needing runtime support.
Modified:
lldb/trunk/source/Symbol/Symtab.cpp
Modified: lldb/trunk/source/Symbol/Symtab.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/Symtab.cpp?rev=180029&r1=180028&r2=180029&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/Symtab.cpp (original)
+++ lldb/trunk/source/Symbol/Symtab.cpp Mon Apr 22 12:02:04 2013
@@ -1125,7 +1125,31 @@ Symtab::FindFunctionSymbols (const Const
if (name_type_mask & (eFunctionNameTypeBase | eFunctionNameTypeFull))
{
- FindAllSymbolsWithNameAndType (name, eSymbolTypeCode, symbol_indexes);
+ std::vector<uint32_t> temp_symbol_indexes;
+ FindAllSymbolsWithNameAndType (name, eSymbolTypeAny, temp_symbol_indexes);
+
+ unsigned temp_symbol_indexes_size = temp_symbol_indexes.size();
+ if (temp_symbol_indexes_size > 0)
+ {
+ Mutex::Locker locker (m_mutex);
+ for (unsigned i = 0; i < temp_symbol_indexes_size; i++)
+ {
+ SymbolContext sym_ctx;
+ sym_ctx.symbol = SymbolAtIndex (temp_symbol_indexes[i]);
+ if (sym_ctx.symbol)
+ {
+ switch (sym_ctx.symbol->GetType())
+ {
+ case eSymbolTypeCode:
+ case eSymbolTypeResolver:
+ symbol_indexes.push_back(temp_symbol_indexes[i]);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
}
if (name_type_mask & eFunctionNameTypeBase)
More information about the lldb-commits
mailing list