LLDB  mainline
Classes | Public Member Functions | Static Public Member Functions | List of all members
lldb_private::breakpad::SymbolFileBreakpad Class Reference

#include <SymbolFileBreakpad.h>

Inheritance diagram for lldb_private::breakpad::SymbolFileBreakpad:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::breakpad::SymbolFileBreakpad:
Collaboration graph
[legend]

Classes

class  LineIterator
 

Public Member Functions

 SymbolFileBreakpad (ObjectFile *object_file)
 
 ~SymbolFileBreakpad () override
 
uint32_t CalculateAbilities () override
 
void InitializeObject () override
 Initialize the SymbolFile object. More...
 
uint32_t GetNumCompileUnits () override
 
lldb::CompUnitSP ParseCompileUnitAtIndex (uint32_t index) override
 
lldb::LanguageType ParseLanguage (CompileUnit &comp_unit) override
 
size_t ParseFunctions (CompileUnit &comp_unit) override
 
bool ParseLineTable (CompileUnit &comp_unit) override
 
bool ParseDebugMacros (CompileUnit &comp_unit) override
 
bool ParseSupportFiles (CompileUnit &comp_unit, FileSpecList &support_files) override
 
size_t ParseTypes (CompileUnit &cu) override
 
bool ParseImportedModules (const SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override
 
size_t ParseBlocksRecursive (Function &func) override
 
uint32_t FindGlobalVariables (ConstString name, const CompilerDeclContext *parent_decl_ctx, uint32_t max_matches, VariableList &variables) override
 
size_t ParseVariablesForContext (const SymbolContext &sc) override
 
TypeResolveTypeUID (lldb::user_id_t type_uid) override
 
llvm::Optional< ArrayInfoGetDynamicArrayInfoForUID (lldb::user_id_t type_uid, const lldb_private::ExecutionContext *exe_ctx) override
 If type_uid points to an array type, return its characteristics. More...
 
bool CompleteType (CompilerType &compiler_type) override
 
uint32_t ResolveSymbolContext (const Address &so_addr, lldb::SymbolContextItem resolve_scope, SymbolContext &sc) override
 
uint32_t ResolveSymbolContext (const FileSpec &file_spec, uint32_t line, bool check_inlines, lldb::SymbolContextItem resolve_scope, SymbolContextList &sc_list) override
 
size_t GetTypes (SymbolContextScope *sc_scope, lldb::TypeClass type_mask, TypeList &type_list) override
 
uint32_t FindFunctions (ConstString name, const CompilerDeclContext *parent_decl_ctx, lldb::FunctionNameType name_type_mask, bool include_inlines, bool append, SymbolContextList &sc_list) override
 
uint32_t FindFunctions (const RegularExpression &regex, bool include_inlines, bool append, SymbolContextList &sc_list) override
 
uint32_t FindTypes (ConstString name, const CompilerDeclContext *parent_decl_ctx, bool append, uint32_t max_matches, llvm::DenseSet< SymbolFile *> &searched_symbol_files, TypeMap &types) override
 
size_t FindTypes (const std::vector< CompilerContext > &context, bool append, TypeMap &types) override
 
TypeSystemGetTypeSystemForLanguage (lldb::LanguageType language) override
 
CompilerDeclContext FindNamespace (ConstString name, const CompilerDeclContext *parent_decl_ctx) override
 
void AddSymbols (Symtab &symtab) override
 
ConstString GetPluginName () override
 
uint32_t GetPluginVersion () override
 
- Public Member Functions inherited from lldb_private::SymbolFile
 SymbolFile (ObjectFile *obj_file)
 
 ~SymbolFile () override
 
uint32_t GetAbilities ()
 Get a mask of what this symbol file supports for the object file that it was constructed with. More...
 
virtual std::recursive_mutex & GetModuleMutex () const
 Symbols file subclasses should override this to return the Module that owns the TypeSystem that this symbol file modifies type information in. More...
 
virtual bool ParseIsOptimized (CompileUnit &comp_unit)
 
virtual void ParseDeclsForContext (CompilerDeclContext decl_ctx)
 
virtual CompilerDecl GetDeclForUID (lldb::user_id_t uid)
 
virtual CompilerDeclContext GetDeclContextForUID (lldb::user_id_t uid)
 
virtual CompilerDeclContext GetDeclContextContainingUID (lldb::user_id_t uid)
 
virtual void DumpClangAST (Stream &s)
 
virtual uint32_t FindGlobalVariables (const RegularExpression &regex, uint32_t max_matches, VariableList &variables)
 
virtual uint32_t FindTypes (ConstString name, const CompilerDeclContext *parent_decl_ctx, bool append, uint32_t max_matches, llvm::DenseSet< lldb_private::SymbolFile *> &searched_symbol_files, TypeMap &types)
 
virtual void GetMangledNamesForFunction (const std::string &scope_qualified_name, std::vector< ConstString > &mangled_names)
 
virtual TypeListGetTypeList ()
 
virtual void PreloadSymbols ()
 
ObjectFileGetObjectFile ()
 
const ObjectFileGetObjectFile () const
 
virtual std::vector< CallEdgeParseCallEdgesInFunction (UserID func_id)
 
virtual void SectionFileAddressesChanged ()
 Notify the SymbolFile that the file addresses in the Sections for this module have been changed. More...
 
virtual void Dump (Stream &s)
 
- Public Member Functions inherited from lldb_private::PluginInterface
virtual ~PluginInterface ()
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 
static void DebuggerInitialize (Debugger &debugger)
 
static ConstString GetPluginNameStatic ()
 
static const char * GetPluginDescriptionStatic ()
 
static SymbolFileCreateInstance (ObjectFile *obj_file)
 
- Static Public Member Functions inherited from lldb_private::SymbolFile
static SymbolFileFindPlugin (ObjectFile *obj_file)
 

Additional Inherited Members

- Public Types inherited from lldb_private::SymbolFile
enum  Abilities {
  CompileUnits = (1u << 0), LineTables = (1u << 1), Functions = (1u << 2), Blocks = (1u << 3),
  GlobalVariables = (1u << 4), LocalVariables = (1u << 5), VariableTypes = (1u << 6), kAllAbilities = ((1u << 7) - 1u)
}
 
- Protected Member Functions inherited from lldb_private::SymbolFile
void AssertModuleLock ()
 
- Protected Attributes inherited from lldb_private::SymbolFile
ObjectFilem_obj_file
 
uint32_t m_abilities
 
bool m_calculated_abilities
 

Detailed Description

Definition at line 21 of file SymbolFileBreakpad.h.

Constructor & Destructor Documentation

◆ SymbolFileBreakpad()

lldb_private::breakpad::SymbolFileBreakpad::SymbolFileBreakpad ( ObjectFile object_file)
inline

Definition at line 38 of file SymbolFileBreakpad.h.

Referenced by CreateInstance().

◆ ~SymbolFileBreakpad()

lldb_private::breakpad::SymbolFileBreakpad::~SymbolFileBreakpad ( )
inlineoverride

Definition at line 40 of file SymbolFileBreakpad.h.

References CalculateAbilities().

Member Function Documentation

◆ AddSymbols()

void SymbolFileBreakpad::AddSymbols ( Symtab symtab)
overridevirtual

◆ CalculateAbilities()

uint32_t SymbolFileBreakpad::CalculateAbilities ( )
overridevirtual

Implements lldb_private::SymbolFile.

Definition at line 179 of file SymbolFileBreakpad.cpp.

Referenced by ~SymbolFileBreakpad().

◆ CompleteType()

bool lldb_private::breakpad::SymbolFileBreakpad::CompleteType ( CompilerType compiler_type)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 91 of file SymbolFileBreakpad.h.

References ResolveSymbolContext().

◆ CreateInstance()

static SymbolFile* lldb_private::breakpad::SymbolFileBreakpad::CreateInstance ( ObjectFile obj_file)
inlinestatic

Definition at line 33 of file SymbolFileBreakpad.h.

References SymbolFileBreakpad().

◆ DebuggerInitialize()

static void lldb_private::breakpad::SymbolFileBreakpad::DebuggerInitialize ( Debugger debugger)
inlinestatic

Definition at line 26 of file SymbolFileBreakpad.h.

References GetPluginNameStatic().

◆ FindFunctions() [1/2]

uint32_t lldb_private::breakpad::SymbolFileBreakpad::FindFunctions ( ConstString  name,
const CompilerDeclContext parent_decl_ctx,
lldb::FunctionNameType  name_type_mask,
bool  include_inlines,
bool  append,
SymbolContextList sc_list 
)
overridevirtual

Reimplemented from lldb_private::SymbolFile.

Referenced by GetTypes().

◆ FindFunctions() [2/2]

uint32_t SymbolFileBreakpad::FindFunctions ( const RegularExpression regex,
bool  include_inlines,
bool  append,
SymbolContextList sc_list 
)
overridevirtual

◆ FindGlobalVariables()

uint32_t lldb_private::breakpad::SymbolFileBreakpad::FindGlobalVariables ( ConstString  name,
const CompilerDeclContext parent_decl_ctx,
uint32_t  max_matches,
VariableList variables 
)
inlineoverridevirtual

Reimplemented from lldb_private::SymbolFile.

Definition at line 74 of file SymbolFileBreakpad.h.

◆ FindNamespace()

CompilerDeclContext lldb_private::breakpad::SymbolFileBreakpad::FindNamespace ( ConstString  name,
const CompilerDeclContext parent_decl_ctx 
)
inlineoverridevirtual

Reimplemented from lldb_private::SymbolFile.

Definition at line 129 of file SymbolFileBreakpad.h.

References AddSymbols().

◆ FindTypes() [1/2]

uint32_t SymbolFileBreakpad::FindTypes ( ConstString  name,
const CompilerDeclContext parent_decl_ctx,
bool  append,
uint32_t  max_matches,
llvm::DenseSet< SymbolFile *> &  searched_symbol_files,
TypeMap types 
)
override

Definition at line 307 of file SymbolFileBreakpad.cpp.

References lldb_private::TypeMap::Clear(), and lldb_private::TypeMap::GetSize().

Referenced by GetTypes().

◆ FindTypes() [2/2]

size_t SymbolFileBreakpad::FindTypes ( const std::vector< CompilerContext > &  context,
bool  append,
TypeMap types 
)
overridevirtual

◆ GetDynamicArrayInfoForUID()

llvm::Optional<ArrayInfo> lldb_private::breakpad::SymbolFileBreakpad::GetDynamicArrayInfoForUID ( lldb::user_id_t  type_uid,
const lldb_private::ExecutionContext exe_ctx 
)
inlineoverridevirtual

If type_uid points to an array type, return its characteristics.

To support variable-length array types, this function takes an optional ExtecutionContext. If exe_ctx is non-null, the dynamic characteristics for that context are returned.

Implements lldb_private::SymbolFile.

Definition at line 85 of file SymbolFileBreakpad.h.

References lldb_private::None.

◆ GetNumCompileUnits()

uint32_t SymbolFileBreakpad::GetNumCompileUnits ( )
overridevirtual

Implements lldb_private::SymbolFile.

Definition at line 188 of file SymbolFileBreakpad.cpp.

Referenced by InitializeObject().

◆ GetPluginDescriptionStatic()

static const char* lldb_private::breakpad::SymbolFileBreakpad::GetPluginDescriptionStatic ( )
inlinestatic

Definition at line 29 of file SymbolFileBreakpad.h.

◆ GetPluginName()

ConstString lldb_private::breakpad::SymbolFileBreakpad::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 136 of file SymbolFileBreakpad.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

ConstString SymbolFileBreakpad::GetPluginNameStatic ( )
static

Definition at line 174 of file SymbolFileBreakpad.cpp.

Referenced by DebuggerInitialize(), and GetPluginName().

◆ GetPluginVersion()

uint32_t lldb_private::breakpad::SymbolFileBreakpad::GetPluginVersion ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 137 of file SymbolFileBreakpad.h.

References lldb_private::operator<().

◆ GetTypes()

size_t lldb_private::breakpad::SymbolFileBreakpad::GetTypes ( SymbolContextScope sc_scope,
lldb::TypeClass  type_mask,
TypeList type_list 
)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 101 of file SymbolFileBreakpad.h.

References FindFunctions(), and FindTypes().

◆ GetTypeSystemForLanguage()

TypeSystem* lldb_private::breakpad::SymbolFileBreakpad::GetTypeSystemForLanguage ( lldb::LanguageType  language)
inlineoverridevirtual

Reimplemented from lldb_private::SymbolFile.

Definition at line 124 of file SymbolFileBreakpad.h.

◆ Initialize()

void SymbolFileBreakpad::Initialize ( )
static

◆ InitializeObject()

void lldb_private::breakpad::SymbolFileBreakpad::InitializeObject ( )
inlineoverridevirtual

Initialize the SymbolFile object.

The SymbolFile object with the best set of abilities (detected in "uint32_t SymbolFile::GetAbilities()) will have this function called if it is chosen to parse an object file. More complete initialization can happen in this function which will get called prior to any other functions in the SymbolFile protocol.

Reimplemented from lldb_private::SymbolFile.

Definition at line 44 of file SymbolFileBreakpad.h.

References GetNumCompileUnits(), and ParseCompileUnitAtIndex().

◆ ParseBlocksRecursive()

size_t lldb_private::breakpad::SymbolFileBreakpad::ParseBlocksRecursive ( Function func)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 72 of file SymbolFileBreakpad.h.

◆ ParseCompileUnitAtIndex()

CompUnitSP SymbolFileBreakpad::ParseCompileUnitAtIndex ( uint32_t  index)
overridevirtual

Implements lldb_private::SymbolFile.

Definition at line 193 of file SymbolFileBreakpad.cpp.

References lldb::eLanguageTypeUnknown, and lldb_private::eLazyBoolNo.

Referenced by InitializeObject().

◆ ParseDebugMacros()

bool lldb_private::breakpad::SymbolFileBreakpad::ParseDebugMacros ( CompileUnit comp_unit)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 60 of file SymbolFileBreakpad.h.

References ParseSupportFiles().

◆ ParseFunctions()

size_t SymbolFileBreakpad::ParseFunctions ( CompileUnit comp_unit)
overridevirtual

Implements lldb_private::SymbolFile.

Definition at line 223 of file SymbolFileBreakpad.cpp.

Referenced by ParseLanguage().

◆ ParseImportedModules()

bool lldb_private::breakpad::SymbolFileBreakpad::ParseImportedModules ( const SymbolContext sc,
std::vector< lldb_private::SourceModule > &  imported_modules 
)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 66 of file SymbolFileBreakpad.h.

◆ ParseLanguage()

lldb::LanguageType lldb_private::breakpad::SymbolFileBreakpad::ParseLanguage ( CompileUnit comp_unit)
inlineoverridevirtual

◆ ParseLineTable()

bool SymbolFileBreakpad::ParseLineTable ( CompileUnit comp_unit)
overridevirtual

◆ ParseSupportFiles()

bool SymbolFileBreakpad::ParseSupportFiles ( CompileUnit comp_unit,
FileSpecList &  support_files 
)
overridevirtual

◆ ParseTypes()

size_t lldb_private::breakpad::SymbolFileBreakpad::ParseTypes ( CompileUnit cu)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 64 of file SymbolFileBreakpad.h.

◆ ParseVariablesForContext()

size_t lldb_private::breakpad::SymbolFileBreakpad::ParseVariablesForContext ( const SymbolContext sc)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 81 of file SymbolFileBreakpad.h.

◆ ResolveSymbolContext() [1/2]

uint32_t lldb_private::breakpad::SymbolFileBreakpad::ResolveSymbolContext ( const Address so_addr,
lldb::SymbolContextItem  resolve_scope,
SymbolContext sc 
)
overridevirtual

Implements lldb_private::SymbolFile.

Referenced by CompleteType().

◆ ResolveSymbolContext() [2/2]

uint32_t SymbolFileBreakpad::ResolveSymbolContext ( const FileSpec file_spec,
uint32_t  line,
bool  check_inlines,
lldb::SymbolContextItem  resolve_scope,
SymbolContextList sc_list 
)
overridevirtual

◆ ResolveTypeUID()

Type* lldb_private::breakpad::SymbolFileBreakpad::ResolveTypeUID ( lldb::user_id_t  type_uid)
inlineoverridevirtual

Implements lldb_private::SymbolFile.

Definition at line 84 of file SymbolFileBreakpad.h.

◆ Terminate()

void SymbolFileBreakpad::Terminate ( )
static

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