diff options
author | Greg Clayton <gclayton@apple.com> | 2011-01-27 06:44:37 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-01-27 06:44:37 +0000 |
commit | 931180e644bc086a16dcad43713b0ac5b7d0a83f (patch) | |
tree | eb89d8a5cf048706e1c7246bb2fbc2c40a4453be /lldb/source/Core/ModuleList.cpp | |
parent | ebd8db7d0032f881cbdfdb4bbceead2052562141 (diff) | |
download | bcm5719-llvm-931180e644bc086a16dcad43713b0ac5b7d0a83f.tar.gz bcm5719-llvm-931180e644bc086a16dcad43713b0ac5b7d0a83f.zip |
Changed the SymbolFile::FindFunction() function calls to only return
lldb_private::Function objects. Previously the SymbolFileSymtab subclass
would return lldb_private::Symbol objects when it was asked to find functions.
The Module::FindFunctions (...) now take a boolean "bool include_symbols" so
that the module can track down functions and symbols, yet functions are found
by the SymbolFile plug-ins (through the SymbolVendor class), and symbols are
gotten through the ObjectFile plug-ins.
Fixed and issue where the DWARF parser might run into incomplete class member
function defintions which would make clang mad when we tried to make certain
member functions with invalid number of parameters (such as an operator=
operator that had no parameters). Now we just avoid and don't complete these
incomplete functions.
llvm-svn: 124359
Diffstat (limited to 'lldb/source/Core/ModuleList.cpp')
-rw-r--r-- | lldb/source/Core/ModuleList.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/lldb/source/Core/ModuleList.cpp b/lldb/source/Core/ModuleList.cpp index dea3ac03bf8..7b448d4dd6d 100644 --- a/lldb/source/Core/ModuleList.cpp +++ b/lldb/source/Core/ModuleList.cpp @@ -141,7 +141,11 @@ ModuleList::GetModuleAtIndex(uint32_t idx) } size_t -ModuleList::FindFunctions (const ConstString &name, uint32_t name_type_mask, bool append, SymbolContextList &sc_list) +ModuleList::FindFunctions (const ConstString &name, + uint32_t name_type_mask, + bool include_symbols, + bool append, + SymbolContextList &sc_list) { if (!append) sc_list.Clear(); @@ -150,14 +154,17 @@ ModuleList::FindFunctions (const ConstString &name, uint32_t name_type_mask, boo collection::const_iterator pos, end = m_modules.end(); for (pos = m_modules.begin(); pos != end; ++pos) { - (*pos)->FindFunctions (name, name_type_mask, true, sc_list); + (*pos)->FindFunctions (name, name_type_mask, include_symbols, true, sc_list); } return sc_list.GetSize(); } uint32_t -ModuleList::FindGlobalVariables (const ConstString &name, bool append, uint32_t max_matches, VariableList& variable_list) +ModuleList::FindGlobalVariables (const ConstString &name, + bool append, + uint32_t max_matches, + VariableList& variable_list) { size_t initial_size = variable_list.GetSize(); Mutex::Locker locker(m_modules_mutex); @@ -171,7 +178,10 @@ ModuleList::FindGlobalVariables (const ConstString &name, bool append, uint32_t uint32_t -ModuleList::FindGlobalVariables (const RegularExpression& regex, bool append, uint32_t max_matches, VariableList& variable_list) +ModuleList::FindGlobalVariables (const RegularExpression& regex, + bool append, + uint32_t max_matches, + VariableList& variable_list) { size_t initial_size = variable_list.GetSize(); Mutex::Locker locker(m_modules_mutex); @@ -185,7 +195,9 @@ ModuleList::FindGlobalVariables (const RegularExpression& regex, bool append, ui size_t -ModuleList::FindSymbolsWithNameAndType (const ConstString &name, SymbolType symbol_type, SymbolContextList &sc_list) +ModuleList::FindSymbolsWithNameAndType (const ConstString &name, + SymbolType symbol_type, + SymbolContextList &sc_list) { Mutex::Locker locker(m_modules_mutex); sc_list.Clear(); |