LLDB  mainline
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | List of all members
lldb_private::AddressResolver Class Referenceabstract

General Outline: The AddressResolver is a Searcher. More...

#include "lldb/Core/AddressResolver.h"

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

Public Types

enum  MatchType { Exact, Regexp, Glob }
 
- Public Types inherited from lldb_private::Searcher
enum  CallbackReturn { eCallbackReturnStop = 0, eCallbackReturnContinue, eCallbackReturnPop }
 

Public Member Functions

 AddressResolver ()
 
 ~AddressResolver () override
 
virtual void ResolveAddress (SearchFilter &filter)
 
virtual void ResolveAddressInModules (SearchFilter &filter, ModuleList &modules)
 
void GetDescription (Stream *s) override=0
 Prints a canonical description for the searcher to the stream s. More...
 
std::vector< AddressRange > & GetAddressRanges ()
 
size_t GetNumberOfAddresses ()
 
AddressRangeGetAddressRangeAtIndex (size_t idx)
 
- Public Member Functions inherited from lldb_private::Searcher
 Searcher ()
 
virtual ~Searcher ()
 
virtual CallbackReturn SearchCallback (SearchFilter &filter, SymbolContext &context, Address *addr)=0
 
virtual lldb::SearchDepth GetDepth ()=0
 

Protected Attributes

std::vector< AddressRangem_address_ranges
 

Private Member Functions

 AddressResolver (const AddressResolver &)=delete
 
const AddressResolveroperator= (const AddressResolver &)=delete
 

Detailed Description

General Outline: The AddressResolver is a Searcher.

In that protocol, the SearchFilter asks the question "At what depth of the symbol context descent do you want your callback to get called?" of the filter. The resolver answers this question (in the GetDepth method) and provides the resolution callback.

This class works with SearchFilter to resolve function names and source file locations to their concrete addresses.

Definition at line 33 of file AddressResolver.h.

Member Enumeration Documentation

◆ MatchType

Enumerator
Exact 
Regexp 
Glob 

Definition at line 35 of file AddressResolver.h.

Constructor & Destructor Documentation

◆ AddressResolver() [1/2]

AddressResolver::AddressResolver ( )
default

◆ ~AddressResolver()

AddressResolver::~AddressResolver ( )
overridedefault

◆ AddressResolver() [2/2]

lldb_private::AddressResolver::AddressResolver ( const AddressResolver )
privatedelete

Member Function Documentation

◆ GetAddressRangeAtIndex()

AddressRange & AddressResolver::GetAddressRangeAtIndex ( size_t  idx)

Definition at line 41 of file AddressResolver.cpp.

References m_address_ranges.

Referenced by lldb_private::Module::FindAddressesForLine().

◆ GetAddressRanges()

std::vector< AddressRange > & AddressResolver::GetAddressRanges ( )

Definition at line 33 of file AddressResolver.cpp.

References m_address_ranges.

◆ GetDescription()

void lldb_private::AddressResolver::GetDescription ( Stream s)
overridepure virtual

Prints a canonical description for the searcher to the stream s.

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

Reimplemented from lldb_private::Searcher.

Implemented in lldb_private::AddressResolverFileLine.

◆ GetNumberOfAddresses()

size_t AddressResolver::GetNumberOfAddresses ( )

Definition at line 37 of file AddressResolver.cpp.

References m_address_ranges.

Referenced by lldb_private::Module::FindAddressesForLine().

◆ operator=()

const AddressResolver& lldb_private::AddressResolver::operator= ( const AddressResolver )
privatedelete

◆ ResolveAddress()

void AddressResolver::ResolveAddress ( SearchFilter filter)
virtual

◆ ResolveAddressInModules()

void AddressResolver::ResolveAddressInModules ( SearchFilter filter,
ModuleList modules 
)
virtual

Member Data Documentation

◆ m_address_ranges

std::vector<AddressRange> lldb_private::AddressResolver::m_address_ranges
protected

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