summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBTarget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBTarget.cpp')
-rw-r--r--lldb/source/API/SBTarget.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp
index 22504402115..82da45a3225 100644
--- a/lldb/source/API/SBTarget.cpp
+++ b/lldb/source/API/SBTarget.cpp
@@ -38,6 +38,7 @@
#include "lldb/Host/FileSpec.h"
#include "lldb/Host/Host.h"
#include "lldb/Interpreter/Args.h"
+#include "lldb/Symbol/SymbolVendor.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
@@ -879,6 +880,52 @@ SBTarget::FindFunctions (const char *name,
return 0;
}
+lldb::SBType
+SBTarget::FindFirstType (const char* type)
+{
+ if (m_opaque_sp)
+ {
+ size_t count = m_opaque_sp->GetImages().GetSize();
+ for (size_t idx = 0; idx < count; idx++)
+ {
+ SBType found_at_idx = GetModuleAtIndex(idx).FindFirstType(type);
+
+ if (found_at_idx.IsValid())
+ return found_at_idx;
+ }
+ }
+ return SBType();
+}
+
+lldb::SBTypeList
+SBTarget::FindTypes (const char* type)
+{
+
+ SBTypeList retval;
+
+ if (m_opaque_sp)
+ {
+ ModuleList& images = m_opaque_sp->GetImages();
+ ConstString name_const(type);
+ SymbolContext sc;
+ TypeList type_list;
+
+ uint32_t num_matches = images.FindTypes(sc,
+ name_const,
+ true,
+ UINT32_MAX,
+ type_list);
+
+ for (size_t idx = 0; idx < num_matches; idx++)
+ {
+ TypeSP sp_at_idx = type_list.GetTypeAtIndex(idx);
+
+ retval.AppendType(SBType(sp_at_idx));
+ }
+ }
+ return retval;
+}
+
SBValueList
SBTarget::FindGlobalVariables (const char *name, uint32_t max_matches)
{
OpenPOWER on IntegriCloud