summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Module.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r--lldb/source/Core/Module.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index 026950e03db..8b07a76eead 100644
--- a/lldb/source/Core/Module.cpp
+++ b/lldb/source/Core/Module.cpp
@@ -193,16 +193,6 @@ Module::GetCompileUnitAtIndex (uint32_t index)
return cu_sp;
}
-//CompUnitSP
-//Module::FindCompUnit(lldb::user_id_t uid)
-//{
-// CompUnitSP cu_sp;
-// SymbolVendor *symbols = GetSymbolVendor ();
-// if (symbols)
-// cu_sp = symbols->FindCompUnit(uid);
-// return cu_sp;
-//}
-
bool
Module::ResolveFileAddress (lldb::addr_t vm_addr, Address& so_addr)
{
@@ -323,6 +313,28 @@ Module::FindGlobalVariables(const RegularExpression& regex, bool append, uint32_
}
uint32_t
+Module::FindCompileUnits (const FileSpec &path,
+ bool append,
+ SymbolContextList &sc_list)
+{
+ if (!append)
+ sc_list.Clear();
+
+ const uint32_t start_size = sc_list.GetSize();
+ const uint32_t num_compile_units = GetNumCompileUnits();
+ SymbolContext sc;
+ sc.module_sp = GetSP();
+ const bool compare_directory = path.GetDirectory();
+ for (uint32_t i=0; i<num_compile_units; ++i)
+ {
+ sc.comp_unit = GetCompileUnitAtIndex(i).get();
+ if (FileSpec::Equal (*sc.comp_unit, path, compare_directory))
+ sc_list.Append(sc);
+ }
+ return sc_list.GetSize() - start_size;
+}
+
+uint32_t
Module::FindFunctions (const ConstString &name,
uint32_t name_type_mask,
bool include_symbols,
OpenPOWER on IntegriCloud