LLDB  mainline
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lldb_private::SearchFilterByModuleList Class Reference

#include <SearchFilter.h>

Inheritance diagram for lldb_private::SearchFilterByModuleList:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::SearchFilterByModuleList:
Collaboration graph
[legend]

Public Member Functions

 SearchFilterByModuleList (const lldb::TargetSP &targetSP, const FileSpecList &module_list)
 The basic constructor takes a Target, which gives the space to search, and the module list to restrict the search to. More...
 
 SearchFilterByModuleList (const lldb::TargetSP &targetSP, const FileSpecList &module_list, enum FilterTy filter_ty)
 
 ~SearchFilterByModuleList () override
 
bool ModulePasses (const lldb::ModuleSP &module_sp) override
 Call this method with a Module to see if that module passes the filter. More...
 
bool ModulePasses (const FileSpec &spec) override
 Call this method with a file spec to see if that spec passes the filter. More...
 
bool AddressPasses (Address &address) override
 Call this method with a Address to see if address passes the filter. More...
 
void GetDescription (Stream *s) override
 Prints a canonical description for the search filter to the stream s. More...
 
uint32_t GetFilterRequiredItems () override
 This determines which items are REQUIRED for the filter to pass. More...
 
void Dump (Stream *s) const override
 Standard "Dump" method. At present it does nothing. More...
 
void Search (Searcher &searcher) override
 Call this method to do the search using the Searcher. More...
 
StructuredData::ObjectSP SerializeToStructuredData () override
 
void SerializeUnwrapped (StructuredData::DictionarySP &options_dict_sp)
 
- Public Member Functions inherited from lldb_private::SearchFilter
 SearchFilter (const lldb::TargetSP &target_sp)
 The basic constructor takes a Target, which gives the space to search. More...
 
 SearchFilter (const lldb::TargetSP &target_sp, unsigned char filterType)
 
virtual ~SearchFilter ()
 
virtual bool CompUnitPasses (FileSpec &fileSpec)
 Call this method with a FileSpec to see if file spec passes the filter as the name of a compilation unit. More...
 
virtual bool CompUnitPasses (CompileUnit &compUnit)
 Call this method with a CompileUnit to see if comp unit passes the filter. More...
 
virtual bool FunctionPasses (Function &function)
 Call this method with a Function to see if function passes the filter. More...
 
virtual void SearchInModuleList (Searcher &searcher, ModuleList &modules)
 Call this method to do the search using the Searcher in the module list modules. More...
 
lldb::SearchFilterSP CreateCopy (lldb::TargetSP &target_sp)
 
enum FilterTy GetFilterTy ()
 
const char * GetFilterName ()
 

Static Public Member Functions

static lldb::SearchFilterSP CreateFromStructuredData (const lldb::TargetSP &target_sp, const StructuredData::Dictionary &data_dict, Status &error)
 
- Static Public Member Functions inherited from lldb_private::SearchFilter
static lldb::SearchFilterSP CreateFromStructuredData (const lldb::TargetSP &target_sp, const StructuredData::Dictionary &data_dict, Status &error)
 
static const char * GetSerializationKey ()
 
static const char * GetSerializationSubclassKey ()
 
static const char * GetSerializationSubclassOptionsKey ()
 
static const char * FilterTyToName (enum FilterTy)
 
static FilterTy NameToFilterTy (llvm::StringRef name)
 

Protected Member Functions

lldb::SearchFilterSP DoCreateCopy () override
 
- Protected Member Functions inherited from lldb_private::SearchFilter
StructuredData::DictionarySP WrapOptionsDict (StructuredData::DictionarySP options_dict_sp)
 
void SerializeFileSpecList (StructuredData::DictionarySP &options_dict_sp, OptionNames name, FileSpecList &file_list)
 
Searcher::CallbackReturn DoModuleIteration (const SymbolContext &context, Searcher &searcher)
 
Searcher::CallbackReturn DoModuleIteration (const lldb::ModuleSP &module_sp, Searcher &searcher)
 
Searcher::CallbackReturn DoCUIteration (const lldb::ModuleSP &module_sp, const SymbolContext &context, Searcher &searcher)
 
Searcher::CallbackReturn DoFunctionIteration (Function *function, const SymbolContext &context, Searcher &searcher)
 
void SetTarget (lldb::TargetSP &target_sp)
 

Protected Attributes

FileSpecList m_module_spec_list
 
- Protected Attributes inherited from lldb_private::SearchFilter
lldb::TargetSP m_target_sp
 

Additional Inherited Members

- Public Types inherited from lldb_private::SearchFilter
enum  FilterTy {
  Unconstrained = 0, Exception, ByModule, ByModules,
  ByModulesAndCU, LastKnownFilterType = ByModulesAndCU, UnknownFilter
}
 
- Static Public Attributes inherited from lldb_private::SearchFilter
static const char * g_ty_to_name [LastKnownFilterType+2]
 
- Protected Types inherited from lldb_private::SearchFilter
enum  OptionNames { ModList = 0, CUList, LanguageName, LastOptionName }
 
- Static Protected Member Functions inherited from lldb_private::SearchFilter
static const char * GetKey (enum OptionNames enum_value)
 
- Static Protected Attributes inherited from lldb_private::SearchFilter
static const char * g_option_names [LastOptionName]
 

Detailed Description

Definition at line 356 of file SearchFilter.h.

Constructor & Destructor Documentation

◆ SearchFilterByModuleList() [1/2]

SearchFilterByModuleList::SearchFilterByModuleList ( const lldb::TargetSP &  targetSP,
const FileSpecList &  module_list 
)

The basic constructor takes a Target, which gives the space to search, and the module list to restrict the search to.

Parameters
[in]targetSPThe Target that provides the module list to search.
[in]module_listThe Module that limits the search.

Definition at line 497 of file SearchFilter.cpp.

◆ SearchFilterByModuleList() [2/2]

SearchFilterByModuleList::SearchFilterByModuleList ( const lldb::TargetSP &  targetSP,
const FileSpecList &  module_list,
enum FilterTy  filter_ty 
)

Definition at line 502 of file SearchFilter.cpp.

◆ ~SearchFilterByModuleList()

SearchFilterByModuleList::~SearchFilterByModuleList ( )
overridedefault

Member Function Documentation

◆ AddressPasses()

bool SearchFilterByModuleList::AddressPasses ( Address addr)
overridevirtual

Call this method with a Address to see if address passes the filter.

Parameters
[in]addrThe address to check against the filter.
Returns
true if address passes, and false otherwise.
Note
the default implementation always returns true.

Reimplemented from lldb_private::SearchFilter.

Reimplemented in lldb_private::SearchFilterByModuleListAndCU.

Definition at line 524 of file SearchFilter.cpp.

◆ CreateFromStructuredData()

SearchFilterSP SearchFilterByModuleList::CreateFromStructuredData ( const lldb::TargetSP &  target_sp,
const StructuredData::Dictionary data_dict,
Status error 
)
static

◆ DoCreateCopy()

lldb::SearchFilterSP SearchFilterByModuleList::DoCreateCopy ( )
overrideprotectedvirtual

Implements lldb_private::SearchFilter.

Reimplemented in lldb_private::SearchFilterByModuleListAndCU.

Definition at line 581 of file SearchFilter.cpp.

◆ Dump()

void SearchFilterByModuleList::Dump ( Stream s) const
overridevirtual

Standard "Dump" method. At present it does nothing.

Reimplemented from lldb_private::SearchFilter.

Reimplemented in lldb_private::SearchFilterByModuleListAndCU.

Definition at line 579 of file SearchFilter.cpp.

◆ GetDescription()

void SearchFilterByModuleList::GetDescription ( Stream s)
overridevirtual

Prints a canonical description for the search filter to the stream s.

Parameters
[in]sStream to which the output is copied.

Reimplemented from lldb_private::SearchFilter.

Reimplemented in lldb_private::SearchFilterByModuleListAndCU.

Definition at line 555 of file SearchFilter.cpp.

References m_module_spec_list, lldb_private::Stream::Printf(), and lldb_private::Stream::PutCString().

◆ GetFilterRequiredItems()

uint32_t SearchFilterByModuleList::GetFilterRequiredItems ( )
overridevirtual

This determines which items are REQUIRED for the filter to pass.

For instance, if you are filtering by Compilation Unit, obviously symbols that have no compilation unit can't pass So return eSymbolContextCU and search callbacks can then short cut the search to avoid looking at things that obviously won't pass.

Returns
The required elements for the search, which is an or'ed together set of lldb:SearchContextItem enum's.

Reimplemented from lldb_private::SearchFilter.

Reimplemented in lldb_private::SearchFilterByModuleListAndCU.

Definition at line 575 of file SearchFilter.cpp.

◆ ModulePasses() [1/2]

bool SearchFilterByModuleList::ModulePasses ( const FileSpec spec)
overridevirtual

Call this method with a file spec to see if that spec passes the filter.

Parameters
[in]specThe file spec to check against the filter.
Returns
true if spec passes, and false otherwise.
Note
the default implementation always returns true.

Reimplemented from lldb_private::SearchFilter.

Definition at line 517 of file SearchFilter.cpp.

References m_module_spec_list, and UINT32_MAX.

◆ ModulePasses() [2/2]

bool lldb_private::SearchFilterByModuleList::ModulePasses ( const lldb::ModuleSP &  module_sp)
overridevirtual

Call this method with a Module to see if that module passes the filter.

Parameters
[in]module_spThe Module to check against the filter.
Returns
true if module passes, and false otherwise.
Note
the default implementation always returns true.

Reimplemented from lldb_private::SearchFilter.

Referenced by lldb_private::SearchFilterByModuleListAndCU::AddressPasses(), and lldb_private::SearchFilterByModuleListAndCU::CompUnitPasses().

◆ Search()

void SearchFilterByModuleList::Search ( Searcher searcher)
overridevirtual

◆ SerializeToStructuredData()

StructuredData::ObjectSP SearchFilterByModuleList::SerializeToStructuredData ( )
overridevirtual

◆ SerializeUnwrapped()

void SearchFilterByModuleList::SerializeUnwrapped ( StructuredData::DictionarySP options_dict_sp)

Member Data Documentation

◆ m_module_spec_list

FileSpecList lldb_private::SearchFilterByModuleList::m_module_spec_list
protected

The documentation for this class was generated from the following files: