zturner created this revision.
zturner added reviewers: davide, jingham, clayborg.
Herald added a subscriber: JDevlieghere.
This is a followup to https://reviews.llvm.org/D53597, with 2 more enums.
Assuming that patch is good, I see no reason why this wasn't isn't good as
well, but I'm throwing it out here for review anyway if nothing else as an FYI.
I'll wait for a final LGTM on https://reviews.llvm.org/D53597, but assuming
that's good, I'll probably submit both of these unless someone has a comment or
comments on this one first.
I think this is the last of the type-erased enums, so after this, all of our
flags enums should be strongly typed through the system.
https://reviews.llvm.org/D53616
Files:
lldb/include/lldb/Breakpoint/BreakpointResolverName.h
lldb/include/lldb/Core/Module.h
lldb/include/lldb/Core/ModuleList.h
lldb/include/lldb/Symbol/SymbolFile.h
lldb/include/lldb/Symbol/SymbolVendor.h
lldb/include/lldb/Target/Target.h
lldb/include/lldb/lldb-enumerations.h
lldb/source/API/SBCompileUnit.cpp
lldb/source/API/SBModule.cpp
lldb/source/API/SBTarget.cpp
lldb/source/Breakpoint/BreakpointResolverName.cpp
lldb/source/Commands/CommandObjectBreakpoint.cpp
lldb/source/Core/Module.cpp
lldb/source/Core/ModuleList.cpp
lldb/source/Expression/IRExecutionUnit.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h
lldb/source/Symbol/SymbolFile.cpp
lldb/source/Symbol/SymbolVendor.cpp
lldb/source/Target/Target.cpp
Index: lldb/source/Target/Target.cpp
===================================================================
--- lldb/source/Target/Target.cpp
+++ lldb/source/Target/Target.cpp
@@ -415,12 +415,11 @@
false);
}
-BreakpointSP
-Target::CreateBreakpoint(const FileSpecList *containingModules,
- const FileSpecList *containingSourceFiles,
- const char *func_name, uint32_t func_name_type_mask,
- LanguageType language, lldb::addr_t offset,
- LazyBool skip_prologue, bool internal, bool hardware) {
+BreakpointSP Target::CreateBreakpoint(
+ const FileSpecList *containingModules,
+ const FileSpecList *containingSourceFiles, const char *func_name,
+ FunctionNameType func_name_type_mask, LanguageType language,
+ lldb::addr_t offset, LazyBool skip_prologue, bool internal, bool hardware) {
BreakpointSP bp_sp;
if (func_name) {
SearchFilterSP filter_sp(GetSearchFilterForModuleAndCUList(
@@ -443,9 +442,9 @@
Target::CreateBreakpoint(const FileSpecList *containingModules,
const FileSpecList *containingSourceFiles,
const std::vector<std::string> &func_names,
- uint32_t func_name_type_mask, LanguageType language,
- lldb::addr_t offset, LazyBool skip_prologue,
- bool internal, bool hardware) {
+ FunctionNameType func_name_type_mask,
+ LanguageType language, lldb::addr_t offset,
+ LazyBool skip_prologue, bool internal, bool hardware) {
BreakpointSP bp_sp;
size_t num_names = func_names.size();
if (num_names > 0) {
@@ -465,11 +464,13 @@
return bp_sp;
}
-BreakpointSP Target::CreateBreakpoint(
- const FileSpecList *containingModules,
- const FileSpecList *containingSourceFiles, const char *func_names[],
- size_t num_names, uint32_t func_name_type_mask, LanguageType language,
- lldb::addr_t offset, LazyBool skip_prologue, bool internal, bool hardware) {
+BreakpointSP
+Target::CreateBreakpoint(const FileSpecList *containingModules,
+ const FileSpecList *containingSourceFiles,
+ const char *func_names[], size_t num_names,
+ FunctionNameType func_name_type_mask,
+ LanguageType language, lldb::addr_t offset,
+ LazyBool skip_prologue, bool internal, bool hardware) {
BreakpointSP bp_sp;
if (num_names > 0) {
SearchFilterSP filter_sp(GetSearchFilterForModuleAndCUList(
Index: lldb/source/Symbol/SymbolVendor.cpp
===================================================================
--- lldb/source/Symbol/SymbolVendor.cpp
+++ lldb/source/Symbol/SymbolVendor.cpp
@@ -288,7 +288,7 @@
size_t SymbolVendor::FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask,
+ FunctionNameType name_type_mask,
bool include_inlines, bool append,
SymbolContextList &sc_list) {
ModuleSP module_sp(GetModule());
@@ -345,7 +345,7 @@
return 0;
}
-size_t SymbolVendor::GetTypes(SymbolContextScope *sc_scope, uint32_t type_mask,
+size_t SymbolVendor::GetTypes(SymbolContextScope *sc_scope, TypeClass type_mask,
lldb_private::TypeList &type_list) {
ModuleSP module_sp(GetModule());
if (module_sp) {
Index: lldb/source/Symbol/SymbolFile.cpp
===================================================================
--- lldb/source/Symbol/SymbolFile.cpp
+++ lldb/source/Symbol/SymbolFile.cpp
@@ -117,7 +117,7 @@
uint32_t SymbolFile::FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask,
+ lldb::FunctionNameType name_type_mask,
bool include_inlines, bool append,
SymbolContextList &sc_list) {
if (!append)
Index: lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h
===================================================================
--- lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h
+++ lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h
@@ -88,7 +88,7 @@
lldb_private::SymbolContext &sc) override;
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ lldb::TypeClass type_mask,
lldb_private::TypeList &type_list) override;
//------------------------------------------------------------------
Index: lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
===================================================================
--- lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
+++ lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
@@ -46,7 +46,7 @@
}
size_t SymbolFileSymtab::GetTypes(SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ TypeClass type_mask,
lldb_private::TypeList &type_list) {
return 0;
}
Index: lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
===================================================================
--- lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
+++ lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
@@ -122,8 +122,8 @@
uint32_t
FindFunctions(const lldb_private::ConstString &name,
const lldb_private::CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines, bool append,
- lldb_private::SymbolContextList &sc_list) override;
+ lldb::FunctionNameType name_type_mask, bool include_inlines,
+ bool append, lldb_private::SymbolContextList &sc_list) override;
uint32_t FindFunctions(const lldb_private::RegularExpression ®ex,
bool include_inlines, bool append,
@@ -150,7 +150,7 @@
lldb_private::TypeList *GetTypeList() override;
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ lldb::TypeClass type_mask,
lldb_private::TypeList &type_list) override;
lldb_private::TypeSystem *
Index: lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
===================================================================
--- lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
+++ lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
@@ -1252,7 +1252,7 @@
uint32_t SymbolFilePDB::FindFunctions(
const lldb_private::ConstString &name,
const lldb_private::CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines, bool append,
+ FunctionNameType name_type_mask, bool include_inlines, bool append,
lldb_private::SymbolContextList &sc_list) {
if (!append)
sc_list.Clear();
@@ -1524,7 +1524,7 @@
}
size_t SymbolFilePDB::GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ TypeClass type_mask,
lldb_private::TypeList &type_list) {
TypeCollection type_collection;
uint32_t old_size = type_list.GetSize();
Index: lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
===================================================================
--- lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
+++ lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
@@ -113,13 +113,14 @@
lldb::SymbolContextItem resolve_scope,
SymbolContext &sc) override;
- size_t GetTypes(SymbolContextScope *sc_scope, uint32_t type_mask,
+ size_t GetTypes(SymbolContextScope *sc_scope, lldb::TypeClass type_mask,
TypeList &type_list) override;
uint32_t FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines,
- bool append, SymbolContextList &sc_list) override;
+ lldb::FunctionNameType name_type_mask,
+ bool include_inlines, bool append,
+ SymbolContextList &sc_list) override;
uint32_t FindFunctions(const RegularExpression ®ex, bool include_inlines,
bool append, SymbolContextList &sc_list) override;
Index: lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
===================================================================
--- lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+++ lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
@@ -1149,7 +1149,7 @@
uint32_t SymbolFileNativePDB::FindFunctions(
const ConstString &name, const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines, bool append,
+ FunctionNameType name_type_mask, bool include_inlines, bool append,
SymbolContextList &sc_list) {
// For now we only support lookup by method name.
if (!(name_type_mask & eFunctionNameTypeMethod))
@@ -1308,7 +1308,7 @@
}
size_t SymbolFileNativePDB::GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ TypeClass type_mask,
lldb_private::TypeList &type_list) {
return 0;
}
Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
===================================================================
--- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
+++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
@@ -104,8 +104,8 @@
uint32_t
FindFunctions(const lldb_private::ConstString &name,
const lldb_private::CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines, bool append,
- lldb_private::SymbolContextList &sc_list) override;
+ lldb::FunctionNameType name_type_mask, bool include_inlines,
+ bool append, lldb_private::SymbolContextList &sc_list) override;
uint32_t FindFunctions(const lldb_private::RegularExpression ®ex,
bool include_inlines, bool append,
lldb_private::SymbolContextList &sc_list) override;
@@ -121,7 +121,7 @@
const lldb_private::ConstString &name,
const lldb_private::CompilerDeclContext *parent_decl_ctx) override;
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ lldb::TypeClass type_mask,
lldb_private::TypeList &type_list) override;
std::vector<lldb_private::CallEdge>
ParseCallEdgesInFunction(lldb_private::UserID func_id) override;
Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
===================================================================
--- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
+++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
@@ -979,7 +979,7 @@
uint32_t SymbolFileDWARFDebugMap::FindFunctions(
const ConstString &name, const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines, bool append,
+ FunctionNameType name_type_mask, bool include_inlines, bool append,
SymbolContextList &sc_list) {
static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
Timer scoped_timer(func_cat,
@@ -1034,7 +1034,7 @@
}
size_t SymbolFileDWARFDebugMap::GetTypes(SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ lldb::TypeClass type_mask,
TypeList &type_list) {
static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
Timer scoped_timer(func_cat,
Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
===================================================================
--- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
+++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
@@ -191,8 +191,8 @@
uint32_t
FindFunctions(const lldb_private::ConstString &name,
const lldb_private::CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines, bool append,
- lldb_private::SymbolContextList &sc_list) override;
+ lldb::FunctionNameType name_type_mask, bool include_inlines,
+ bool append, lldb_private::SymbolContextList &sc_list) override;
uint32_t FindFunctions(const lldb_private::RegularExpression ®ex,
bool include_inlines, bool append,
@@ -216,7 +216,7 @@
lldb_private::TypeList *GetTypeList() override;
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ lldb::TypeClass type_mask,
lldb_private::TypeList &type_list) override;
lldb_private::TypeSystem *
Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
===================================================================
--- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -341,7 +341,7 @@
}
size_t SymbolFileDWARF::GetTypes(SymbolContextScope *sc_scope,
- uint32_t type_mask, TypeList &type_list)
+ TypeClass type_mask, TypeList &type_list)
{
ASSERT_MODULE_LOCK(this);
@@ -2288,11 +2288,10 @@
return false;
}
-uint32_t
-SymbolFileDWARF::FindFunctions(const ConstString &name,
- const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines,
- bool append, SymbolContextList &sc_list) {
+uint32_t SymbolFileDWARF::FindFunctions(
+ const ConstString &name, const CompilerDeclContext *parent_decl_ctx,
+ FunctionNameType name_type_mask, bool include_inlines, bool append,
+ SymbolContextList &sc_list) {
static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
Timer scoped_timer(func_cat, "SymbolFileDWARF::FindFunctions (name = '%s')",
name.AsCString());
Index: lldb/source/Expression/IRExecutionUnit.cpp
===================================================================
--- lldb/source/Expression/IRExecutionUnit.cpp
+++ lldb/source/Expression/IRExecutionUnit.cpp
@@ -709,9 +709,10 @@
struct IRExecutionUnit::SearchSpec {
ConstString name;
- uint32_t mask;
+ lldb::FunctionNameType mask;
- SearchSpec(ConstString n, uint32_t m = lldb::eFunctionNameTypeFull)
+ SearchSpec(ConstString n,
+ lldb::FunctionNameType m = lldb::eFunctionNameTypeFull)
: name(n), mask(m) {}
};
Index: lldb/source/Core/ModuleList.cpp
===================================================================
--- lldb/source/Core/ModuleList.cpp
+++ lldb/source/Core/ModuleList.cpp
@@ -338,8 +338,9 @@
}
size_t ModuleList::FindFunctions(const ConstString &name,
- uint32_t name_type_mask, bool include_symbols,
- bool include_inlines, bool append,
+ FunctionNameType name_type_mask,
+ bool include_symbols, bool include_inlines,
+ bool append,
SymbolContextList &sc_list) const {
if (!append)
sc_list.Clear();
@@ -373,7 +374,7 @@
}
size_t ModuleList::FindFunctionSymbols(const ConstString &name,
- uint32_t name_type_mask,
+ lldb::FunctionNameType name_type_mask,
SymbolContextList &sc_list) {
const size_t old_size = sc_list.GetSize();
Index: lldb/source/Core/Module.cpp
===================================================================
--- lldb/source/Core/Module.cpp
+++ lldb/source/Core/Module.cpp
@@ -635,9 +635,11 @@
return sc_list.GetSize() - start_size;
}
-Module::LookupInfo::LookupInfo(const ConstString &name, uint32_t name_type_mask,
- lldb::LanguageType language)
- : m_name(name), m_lookup_name(), m_language(language), m_name_type_mask(0),
+Module::LookupInfo::LookupInfo(const ConstString &name,
+ FunctionNameType name_type_mask,
+ LanguageType language)
+ : m_name(name), m_lookup_name(), m_language(language),
+ m_name_type_mask(eFunctionNameTypeNone),
m_match_name_after_lookup(false) {
const char *name_cstr = name.GetCString();
llvm::StringRef basename;
@@ -795,9 +797,9 @@
size_t Module::FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_symbols,
- bool include_inlines, bool append,
- SymbolContextList &sc_list) {
+ FunctionNameType name_type_mask,
+ bool include_symbols, bool include_inlines,
+ bool append, SymbolContextList &sc_list) {
if (!append)
sc_list.Clear();
Index: lldb/source/Commands/CommandObjectBreakpoint.cpp
===================================================================
--- lldb/source/Commands/CommandObjectBreakpoint.cpp
+++ lldb/source/Commands/CommandObjectBreakpoint.cpp
@@ -636,7 +636,7 @@
uint32_t m_column;
std::vector<std::string> m_func_names;
std::vector<std::string> m_breakpoint_names;
- uint32_t m_func_name_type_mask;
+ lldb::FunctionNameType m_func_name_type_mask;
std::string m_func_regexp;
std::string m_source_text_regexp;
FileSpecList m_modules;
@@ -765,7 +765,7 @@
}
case eSetTypeFunctionName: // Breakpoint by function name
{
- uint32_t name_type_mask = m_options.m_func_name_type_mask;
+ FunctionNameType name_type_mask = m_options.m_func_name_type_mask;
if (name_type_mask == 0)
name_type_mask = eFunctionNameTypeAuto;
Index: lldb/source/Breakpoint/BreakpointResolverName.cpp
===================================================================
--- lldb/source/Breakpoint/BreakpointResolverName.cpp
+++ lldb/source/Breakpoint/BreakpointResolverName.cpp
@@ -30,7 +30,7 @@
using namespace lldb_private;
BreakpointResolverName::BreakpointResolverName(
- Breakpoint *bkpt, const char *name_cstr, uint32_t name_type_mask,
+ Breakpoint *bkpt, const char *name_cstr, FunctionNameType name_type_mask,
LanguageType language, Breakpoint::MatchType type, lldb::addr_t offset,
bool skip_prologue)
: BreakpointResolver(bkpt, BreakpointResolver::NameResolver, offset),
@@ -51,7 +51,7 @@
BreakpointResolverName::BreakpointResolverName(
Breakpoint *bkpt, const char *names[], size_t num_names,
- uint32_t name_type_mask, LanguageType language, lldb::addr_t offset,
+ FunctionNameType name_type_mask, LanguageType language, lldb::addr_t offset,
bool skip_prologue)
: BreakpointResolver(bkpt, BreakpointResolver::NameResolver, offset),
m_match_type(Breakpoint::Exact), m_language(language),
@@ -61,9 +61,12 @@
}
}
-BreakpointResolverName::BreakpointResolverName(
- Breakpoint *bkpt, std::vector<std::string> names, uint32_t name_type_mask,
- LanguageType language, lldb::addr_t offset, bool skip_prologue)
+BreakpointResolverName::BreakpointResolverName(Breakpoint *bkpt,
+ std::vector<std::string> names,
+ FunctionNameType name_type_mask,
+ LanguageType language,
+ lldb::addr_t offset,
+ bool skip_prologue)
: BreakpointResolver(bkpt, BreakpointResolver::NameResolver, offset),
m_match_type(Breakpoint::Exact), m_language(language),
m_skip_prologue(skip_prologue) {
@@ -161,23 +164,23 @@
return nullptr;
}
std::vector<std::string> names;
- std::vector<uint32_t> name_masks;
+ std::vector<FunctionNameType> name_masks;
for (size_t i = 0; i < num_elem; i++) {
- uint32_t name_mask;
llvm::StringRef name;
success = names_array->GetItemAtIndexAsString(i, name);
if (!success) {
error.SetErrorString("BRN::CFSD: name entry is not a string.");
return nullptr;
}
- success = names_mask_array->GetItemAtIndexAsInteger(i, name_mask);
+ std::underlying_type<FunctionNameType>::type fnt;
+ success = names_mask_array->GetItemAtIndexAsInteger(i, fnt);
if (!success) {
error.SetErrorString("BRN::CFSD: name mask entry is not an integer.");
return nullptr;
}
names.push_back(name);
- name_masks.push_back(name_mask);
+ name_masks.push_back(static_cast<FunctionNameType>(fnt));
}
BreakpointResolverName *resolver = new BreakpointResolverName(
@@ -220,7 +223,7 @@
}
void BreakpointResolverName::AddNameLookup(const ConstString &name,
- uint32_t name_type_mask) {
+ FunctionNameType name_type_mask) {
ObjCLanguage::MethodName objc_method(name.GetCString(), false);
if (objc_method.IsValid(false)) {
std::vector<ConstString> objc_names;
Index: lldb/source/API/SBTarget.cpp
===================================================================
--- lldb/source/API/SBTarget.cpp
+++ lldb/source/API/SBTarget.cpp
@@ -790,7 +790,7 @@
SBTarget::BreakpointCreateByName(const char *symbol_name,
const SBFileSpecList &module_list,
const SBFileSpecList &comp_unit_list) {
- uint32_t name_type_mask = eFunctionNameTypeAuto;
+ lldb::FunctionNameType name_type_mask = eFunctionNameTypeAuto;
return BreakpointCreateByName(symbol_name, name_type_mask,
eLanguageTypeUnknown, module_list,
comp_unit_list);
@@ -817,9 +817,10 @@
const bool hardware = false;
const LazyBool skip_prologue = eLazyBoolCalculate;
std::lock_guard<std::recursive_mutex> guard(target_sp->GetAPIMutex());
- sb_bp = target_sp->CreateBreakpoint(
- module_list.get(), comp_unit_list.get(), symbol_name, name_type_mask,
- symbol_language, 0, skip_prologue, internal, hardware);
+ FunctionNameType mask = static_cast<FunctionNameType>(name_type_mask);
+ sb_bp = target_sp->CreateBreakpoint(module_list.get(), comp_unit_list.get(),
+ symbol_name, mask, symbol_language, 0,
+ skip_prologue, internal, hardware);
}
if (log)
@@ -860,11 +861,11 @@
std::lock_guard<std::recursive_mutex> guard(target_sp->GetAPIMutex());
const bool internal = false;
const bool hardware = false;
+ FunctionNameType mask = static_cast<FunctionNameType>(name_type_mask);
const LazyBool skip_prologue = eLazyBoolCalculate;
sb_bp = target_sp->CreateBreakpoint(
- module_list.get(), comp_unit_list.get(), symbol_names, num_names,
- name_type_mask, symbol_language, offset, skip_prologue, internal,
- hardware);
+ module_list.get(), comp_unit_list.get(), symbol_names, num_names, mask,
+ symbol_language, offset, skip_prologue, internal, hardware);
}
if (log) {
@@ -1735,17 +1736,19 @@
lldb::SBSymbolContextList SBTarget::FindFunctions(const char *name,
uint32_t name_type_mask) {
lldb::SBSymbolContextList sb_sc_list;
- if (name && name[0]) {
- TargetSP target_sp(GetSP());
- if (target_sp) {
- const bool symbols_ok = true;
- const bool inlines_ok = true;
- const bool append = true;
- target_sp->GetImages().FindFunctions(ConstString(name), name_type_mask,
- symbols_ok, inlines_ok, append,
- *sb_sc_list);
- }
- }
+ if (!name | !name[0])
+ return sb_sc_list;
+
+ TargetSP target_sp(GetSP());
+ if (!target_sp)
+ return sb_sc_list;
+
+ const bool symbols_ok = true;
+ const bool inlines_ok = true;
+ const bool append = true;
+ FunctionNameType mask = static_cast<FunctionNameType>(name_type_mask);
+ target_sp->GetImages().FindFunctions(ConstString(name), mask, symbols_ok,
+ inlines_ok, append, *sb_sc_list);
return sb_sc_list;
}
Index: lldb/source/API/SBModule.cpp
===================================================================
--- lldb/source/API/SBModule.cpp
+++ lldb/source/API/SBModule.cpp
@@ -365,8 +365,9 @@
const bool append = true;
const bool symbols_ok = true;
const bool inlines_ok = true;
- module_sp->FindFunctions(ConstString(name), NULL, name_type_mask,
- symbols_ok, inlines_ok, append, *sb_sc_list);
+ FunctionNameType type = static_cast<FunctionNameType>(name_type_mask);
+ module_sp->FindFunctions(ConstString(name), NULL, type, symbols_ok,
+ inlines_ok, append, *sb_sc_list);
}
return sb_sc_list;
}
@@ -484,14 +485,16 @@
SBTypeList sb_type_list;
ModuleSP module_sp(GetSP());
- if (module_sp) {
- SymbolVendor *vendor = module_sp->GetSymbolVendor();
- if (vendor) {
- TypeList type_list;
- vendor->GetTypes(NULL, type_mask, type_list);
- sb_type_list.m_opaque_ap->Append(type_list);
- }
- }
+ if (!module_sp)
+ return sb_type_list;
+ SymbolVendor *vendor = module_sp->GetSymbolVendor();
+ if (!vendor)
+ return sb_type_list;
+
+ TypeClass type_class = static_cast<TypeClass>(type_mask);
+ TypeList type_list;
+ vendor->GetTypes(NULL, type_class, type_list);
+ sb_type_list.m_opaque_ap->Append(type_list);
return sb_type_list;
}
Index: lldb/source/API/SBCompileUnit.cpp
===================================================================
--- lldb/source/API/SBCompileUnit.cpp
+++ lldb/source/API/SBCompileUnit.cpp
@@ -135,17 +135,21 @@
lldb::SBTypeList SBCompileUnit::GetTypes(uint32_t type_mask) {
SBTypeList sb_type_list;
- if (m_opaque_ptr) {
- ModuleSP module_sp(m_opaque_ptr->GetModule());
- if (module_sp) {
- SymbolVendor *vendor = module_sp->GetSymbolVendor();
- if (vendor) {
- TypeList type_list;
- vendor->GetTypes(m_opaque_ptr, type_mask, type_list);
- sb_type_list.m_opaque_ap->Append(type_list);
- }
- }
- }
+ if (!m_opaque_ptr)
+ return sb_type_list;
+
+ ModuleSP module_sp(m_opaque_ptr->GetModule());
+ if (!module_sp)
+ return sb_type_list;
+
+ SymbolVendor *vendor = module_sp->GetSymbolVendor();
+ if (!vendor)
+ return sb_type_list;
+
+ TypeClass type_class = static_cast<TypeClass>(type_mask);
+ TypeList type_list;
+ vendor->GetTypes(m_opaque_ptr, type_class, type_list);
+ sb_type_list.m_opaque_ap->Append(type_list);
return sb_type_list;
}
Index: lldb/include/lldb/lldb-enumerations.h
===================================================================
--- lldb/include/lldb/lldb-enumerations.h
+++ lldb/include/lldb/lldb-enumerations.h
@@ -735,6 +735,7 @@
eFunctionNameTypeAny =
eFunctionNameTypeAuto // DEPRECATED: use eFunctionNameTypeAuto
};
+LLDB_MARK_AS_BITMASK_ENUM(FunctionNameType)
//----------------------------------------------------------------------
// Basic types enumeration for the public API SBType::GetBasicType()
@@ -809,6 +810,7 @@
eTypeClassOther = (1u << 31),
// Define a mask that can be used for any type when finding types
eTypeClassAny = (0xffffffffu)};
+LLDB_MARK_AS_BITMASK_ENUM(TypeClass)
enum TemplateArgumentKind {
eTemplateArgumentKindNull = 0,
Index: lldb/include/lldb/Target/Target.h
===================================================================
--- lldb/include/lldb/Target/Target.h
+++ lldb/include/lldb/Target/Target.h
@@ -608,14 +608,12 @@
// eLazyBoolCalculate, we use the current target setting, else we use the
// values passed in. func_name_type_mask is or'ed values from the
// FunctionNameType enum.
- lldb::BreakpointSP CreateBreakpoint(const FileSpecList *containingModules,
- const FileSpecList *containingSourceFiles,
- const char *func_name,
- uint32_t func_name_type_mask,
- lldb::LanguageType language,
- lldb::addr_t offset,
- LazyBool skip_prologue, bool internal,
- bool request_hardware);
+ lldb::BreakpointSP CreateBreakpoint(
+ const FileSpecList *containingModules,
+ const FileSpecList *containingSourceFiles, const char *func_name,
+ lldb::FunctionNameType func_name_type_mask, lldb::LanguageType language,
+ lldb::addr_t offset, LazyBool skip_prologue, bool internal,
+ bool request_hardware);
lldb::BreakpointSP
CreateExceptionBreakpoint(enum lldb::LanguageType language, bool catch_bp,
@@ -637,20 +635,20 @@
// the case where you just want to set a breakpoint on a set of names you
// already know. func_name_type_mask is or'ed values from the
// FunctionNameType enum.
- lldb::BreakpointSP
- CreateBreakpoint(const FileSpecList *containingModules,
- const FileSpecList *containingSourceFiles,
- const char *func_names[], size_t num_names,
- uint32_t func_name_type_mask, lldb::LanguageType language,
- lldb::addr_t offset, LazyBool skip_prologue, bool internal,
- bool request_hardware);
+ lldb::BreakpointSP CreateBreakpoint(
+ const FileSpecList *containingModules,
+ const FileSpecList *containingSourceFiles, const char *func_names[],
+ size_t num_names, lldb::FunctionNameType func_name_type_mask,
+ lldb::LanguageType language, lldb::addr_t offset, LazyBool skip_prologue,
+ bool internal, bool request_hardware);
lldb::BreakpointSP
CreateBreakpoint(const FileSpecList *containingModules,
const FileSpecList *containingSourceFiles,
const std::vector<std::string> &func_names,
- uint32_t func_name_type_mask, lldb::LanguageType language,
- lldb::addr_t m_offset, LazyBool skip_prologue, bool internal,
+ lldb::FunctionNameType func_name_type_mask,
+ lldb::LanguageType language, lldb::addr_t m_offset,
+ LazyBool skip_prologue, bool internal,
bool request_hardware);
// Use this to create a general breakpoint:
Index: lldb/include/lldb/Symbol/SymbolVendor.h
===================================================================
--- lldb/include/lldb/Symbol/SymbolVendor.h
+++ lldb/include/lldb/Symbol/SymbolVendor.h
@@ -90,8 +90,9 @@
virtual size_t FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines,
- bool append, SymbolContextList &sc_list);
+ lldb::FunctionNameType name_type_mask,
+ bool include_inlines, bool append,
+ SymbolContextList &sc_list);
virtual size_t FindFunctions(const RegularExpression ®ex,
bool include_inlines, bool append,
@@ -122,8 +123,8 @@
const TypeList &GetTypeList() const { return m_type_list; }
- virtual size_t GetTypes(SymbolContextScope *sc_scope, uint32_t type_mask,
- TypeList &type_list);
+ virtual size_t GetTypes(SymbolContextScope *sc_scope,
+ lldb::TypeClass type_mask, TypeList &type_list);
SymbolFile *GetSymbolFile() { return m_sym_file_ap.get(); }
Index: lldb/include/lldb/Symbol/SymbolFile.h
===================================================================
--- lldb/include/lldb/Symbol/SymbolFile.h
+++ lldb/include/lldb/Symbol/SymbolFile.h
@@ -170,8 +170,9 @@
VariableList &variables);
virtual uint32_t FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool include_inlines,
- bool append, SymbolContextList &sc_list);
+ lldb::FunctionNameType name_type_mask,
+ bool include_inlines, bool append,
+ SymbolContextList &sc_list);
virtual uint32_t FindFunctions(const RegularExpression ®ex,
bool include_inlines, bool append,
SymbolContextList &sc_list);
@@ -192,7 +193,7 @@
// types) = 0;
virtual TypeList *GetTypeList();
virtual size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
- uint32_t type_mask,
+ lldb::TypeClass type_mask,
lldb_private::TypeList &type_list) = 0;
virtual void PreloadSymbols();
Index: lldb/include/lldb/Core/ModuleList.h
===================================================================
--- lldb/include/lldb/Core/ModuleList.h
+++ lldb/include/lldb/Core/ModuleList.h
@@ -300,14 +300,16 @@
//------------------------------------------------------------------
/// @see Module::FindFunctions ()
//------------------------------------------------------------------
- size_t FindFunctions(const ConstString &name, uint32_t name_type_mask,
+ size_t FindFunctions(const ConstString &name,
+ lldb::FunctionNameType name_type_mask,
bool include_symbols, bool include_inlines, bool append,
SymbolContextList &sc_list) const;
//------------------------------------------------------------------
/// @see Module::FindFunctionSymbols ()
//------------------------------------------------------------------
- size_t FindFunctionSymbols(const ConstString &name, uint32_t name_type_mask,
+ size_t FindFunctionSymbols(const ConstString &name,
+ lldb::FunctionNameType name_type_mask,
SymbolContextList &sc_list);
//------------------------------------------------------------------
Index: lldb/include/lldb/Core/Module.h
===================================================================
--- lldb/include/lldb/Core/Module.h
+++ lldb/include/lldb/Core/Module.h
@@ -380,7 +380,7 @@
//------------------------------------------------------------------
size_t FindFunctions(const ConstString &name,
const CompilerDeclContext *parent_decl_ctx,
- uint32_t name_type_mask, bool symbols_ok,
+ lldb::FunctionNameType name_type_mask, bool symbols_ok,
bool inlines_ok, bool append,
SymbolContextList &sc_list);
@@ -1028,9 +1028,10 @@
public:
LookupInfo()
: m_name(), m_lookup_name(), m_language(lldb::eLanguageTypeUnknown),
- m_name_type_mask(0), m_match_name_after_lookup(false) {}
+ m_name_type_mask(lldb::eFunctionNameTypeNone),
+ m_match_name_after_lookup(false) {}
- LookupInfo(const ConstString &name, uint32_t name_type_mask,
+ LookupInfo(const ConstString &name, lldb::FunctionNameType name_type_mask,
lldb::LanguageType language);
const ConstString &GetName() const { return m_name; }
@@ -1041,24 +1042,31 @@
void SetLookupName(const ConstString &name) { m_lookup_name = name; }
- uint32_t GetNameTypeMask() const { return m_name_type_mask; }
+ lldb::FunctionNameType GetNameTypeMask() const { return m_name_type_mask; }
- void SetNameTypeMask(uint32_t mask) { m_name_type_mask = mask; }
+ void SetNameTypeMask(lldb::FunctionNameType mask) {
+ m_name_type_mask = mask;
+ }
void Prune(SymbolContextList &sc_list, size_t start_idx) const;
protected:
- ConstString m_name; ///< What the user originally typed
- ConstString m_lookup_name; ///< The actual name will lookup when calling in
- ///the object or symbol file
- lldb::LanguageType
- m_language; ///< Limit matches to only be for this language
- uint32_t m_name_type_mask; ///< One or more bits from lldb::FunctionNameType
- ///that indicate what kind of names we are
- ///looking for
- bool m_match_name_after_lookup; ///< If \b true, then demangled names that
- ///match will need to contain "m_name" in
- ///order to be considered a match
+ /// What the user originally typed
+ ConstString m_name;
+
+ /// The actual name will lookup when calling in the object or symbol file
+ ConstString m_lookup_name;
+
+ /// Limit matches to only be for this language
+ lldb::LanguageType m_language;
+
+ /// One or more bits from lldb::FunctionNameType that indicate what kind of
+ /// names we are looking for
+ lldb::FunctionNameType m_name_type_mask;
+
+ ///< If \b true, then demangled names that match will need to contain
+ ///< "m_name" in order to be considered a match
+ bool m_match_name_after_lookup;
};
protected:
Index: lldb/include/lldb/Breakpoint/BreakpointResolverName.h
===================================================================
--- lldb/include/lldb/Breakpoint/BreakpointResolverName.h
+++ lldb/include/lldb/Breakpoint/BreakpointResolverName.h
@@ -31,20 +31,23 @@
class BreakpointResolverName : public BreakpointResolver {
public:
BreakpointResolverName(Breakpoint *bkpt, const char *name,
- uint32_t name_type_mask, lldb::LanguageType language,
+ lldb::FunctionNameType name_type_mask,
+ lldb::LanguageType language,
Breakpoint::MatchType type, lldb::addr_t offset,
bool skip_prologue);
// This one takes an array of names. It is always MatchType = Exact.
BreakpointResolverName(Breakpoint *bkpt, const char *names[],
- size_t num_names, uint32_t name_type_mask,
+ size_t num_names,
+ lldb::FunctionNameType name_type_mask,
lldb::LanguageType language, lldb::addr_t offset,
bool skip_prologue);
// This one takes a C++ array of names. It is always MatchType = Exact.
BreakpointResolverName(Breakpoint *bkpt, std::vector<std::string> names,
- uint32_t name_type_mask, lldb::LanguageType language,
- lldb::addr_t offset, bool skip_prologue);
+ lldb::FunctionNameType name_type_mask,
+ lldb::LanguageType language, lldb::addr_t offset,
+ bool skip_prologue);
// Creates a function breakpoint by regular expression. Takes over control
// of the lifespan of func_regex.
@@ -89,7 +92,8 @@
lldb::LanguageType m_language;
bool m_skip_prologue;
- void AddNameLookup(const ConstString &name, uint32_t name_type_mask);
+ void AddNameLookup(const ConstString &name,
+ lldb::FunctionNameType name_type_mask);
};
} // namespace lldb_private
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits