LLDB  mainline
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
SymbolFileDWARFDebugMap Class Reference

#include <SymbolFileDWARFDebugMap.h>

Inheritance diagram for SymbolFileDWARFDebugMap:
Inheritance graph
[legend]
Collaboration diagram for SymbolFileDWARFDebugMap:
Collaboration graph
[legend]

Classes

struct  CompileUnitInfo
 
class  OSOEntry
 
struct  OSOInfo
 

Public Member Functions

 SymbolFileDWARFDebugMap (lldb_private::ObjectFile *ofile)
 
 ~SymbolFileDWARFDebugMap () 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 (lldb_private::CompileUnit &comp_unit) override
 
size_t ParseFunctions (lldb_private::CompileUnit &comp_unit) override
 
bool ParseLineTable (lldb_private::CompileUnit &comp_unit) override
 
bool ParseDebugMacros (lldb_private::CompileUnit &comp_unit) override
 
bool ParseSupportFiles (lldb_private::CompileUnit &comp_unit, lldb_private::FileSpecList &support_files) override
 
bool ParseIsOptimized (lldb_private::CompileUnit &comp_unit) override
 
size_t ParseTypes (lldb_private::CompileUnit &comp_unit) override
 
bool ParseImportedModules (const lldb_private::SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override
 
size_t ParseBlocksRecursive (lldb_private::Function &func) override
 
size_t ParseVariablesForContext (const lldb_private::SymbolContext &sc) override
 
lldb_private::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...
 
lldb_private::CompilerDeclContext GetDeclContextForUID (lldb::user_id_t uid) override
 
lldb_private::CompilerDeclContext GetDeclContextContainingUID (lldb::user_id_t uid) override
 
void ParseDeclsForContext (lldb_private::CompilerDeclContext decl_ctx) override
 
bool CompleteType (lldb_private::CompilerType &compiler_type) override
 
uint32_t ResolveSymbolContext (const lldb_private::Address &so_addr, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContext &sc) override
 
uint32_t ResolveSymbolContext (const lldb_private::FileSpec &file_spec, uint32_t line, bool check_inlines, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContextList &sc_list) override
 
uint32_t FindGlobalVariables (lldb_private::ConstString name, const lldb_private::CompilerDeclContext *parent_decl_ctx, uint32_t max_matches, lldb_private::VariableList &variables) override
 
uint32_t FindGlobalVariables (const lldb_private::RegularExpression &regex, uint32_t max_matches, lldb_private::VariableList &variables) override
 
uint32_t FindFunctions (lldb_private::ConstString name, const lldb_private::CompilerDeclContext *parent_decl_ctx, lldb::FunctionNameType name_type_mask, bool include_inlines, bool append, lldb_private::SymbolContextList &sc_list) override
 
uint32_t FindFunctions (const lldb_private::RegularExpression &regex, bool include_inlines, bool append, lldb_private::SymbolContextList &sc_list) override
 
uint32_t FindTypes (lldb_private::ConstString name, const lldb_private::CompilerDeclContext *parent_decl_ctx, bool append, uint32_t max_matches, llvm::DenseSet< lldb_private::SymbolFile *> &searched_symbol_files, lldb_private::TypeMap &types) override
 
lldb_private::CompilerDeclContext FindNamespace (lldb_private::ConstString name, const lldb_private::CompilerDeclContext *parent_decl_ctx) override
 
size_t GetTypes (lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override
 
std::vector< lldb_private::CallEdgeParseCallEdgesInFunction (lldb_private::UserID func_id) override
 
void DumpClangAST (lldb_private::Stream &s) override
 
lldb_private::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 ParseSupportFiles (CompileUnit &comp_unit, FileSpecList &support_files)=0
 
virtual CompilerDecl GetDeclForUID (lldb::user_id_t uid)
 
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 size_t FindTypes (const std::vector< CompilerContext > &context, bool append, TypeMap &types)
 
virtual void GetMangledNamesForFunction (const std::string &scope_qualified_name, std::vector< ConstString > &mangled_names)
 
virtual TypeListGetTypeList ()
 
virtual void PreloadSymbols ()
 
virtual lldb_private::TypeSystemGetTypeSystemForLanguage (lldb::LanguageType language)
 
ObjectFileGetObjectFile ()
 
const ObjectFileGetObjectFile () const
 
virtual void AddSymbols (Symtab &symtab)
 
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 lldb_private::ConstString GetPluginNameStatic ()
 
static const char * GetPluginDescriptionStatic ()
 
static lldb_private::SymbolFileCreateInstance (lldb_private::ObjectFile *obj_file)
 
- Static Public Member Functions inherited from lldb_private::SymbolFile
static SymbolFileFindPlugin (ObjectFile *obj_file)
 

Protected Types

enum  { kHaveInitializedOSOs = (1 << 0), kNumFlags }
 
typedef std::shared_ptr< OSOInfoOSOInfoSP
 
typedef lldb_private::RangeDataVector< lldb::addr_t, lldb::addr_t, lldb::addr_tFileRangeMap
 
typedef lldb_private::RangeDataVector< lldb::addr_t, lldb::addr_t, OSOEntryDebugMap
 

Protected Member Functions

void InitOSO ()
 
bool GetFileSpecForSO (uint32_t oso_idx, lldb_private::FileSpec &file_spec)
 
CompileUnitInfoGetCompUnitInfo (const lldb_private::SymbolContext &sc)
 
CompileUnitInfoGetCompUnitInfo (const lldb_private::CompileUnit &comp_unit)
 
size_t GetCompUnitInfosForModule (const lldb_private::Module *oso_module, std::vector< CompileUnitInfo *> &cu_infos)
 
lldb_private::ModuleGetModuleByCompUnitInfo (CompileUnitInfo *comp_unit_info)
 
lldb_private::ModuleGetModuleByOSOIndex (uint32_t oso_idx)
 
lldb_private::ObjectFileGetObjectFileByCompUnitInfo (CompileUnitInfo *comp_unit_info)
 
lldb_private::ObjectFileGetObjectFileByOSOIndex (uint32_t oso_idx)
 
uint32_t GetCompUnitInfoIndex (const CompileUnitInfo *comp_unit_info)
 
SymbolFileDWARFGetSymbolFile (const lldb_private::SymbolContext &sc)
 
SymbolFileDWARFGetSymbolFile (const lldb_private::CompileUnit &comp_unit)
 
SymbolFileDWARFGetSymbolFileByCompUnitInfo (CompileUnitInfo *comp_unit_info)
 
SymbolFileDWARFGetSymbolFileByOSOIndex (uint32_t oso_idx)
 
void ForEachSymbolFile (std::function< bool(SymbolFileDWARF *)> closure)
 
CompileUnitInfoGetCompileUnitInfoForSymbolWithIndex (uint32_t symbol_idx, uint32_t *oso_idx_ptr)
 
CompileUnitInfoGetCompileUnitInfoForSymbolWithID (lldb::user_id_t symbol_id, uint32_t *oso_idx_ptr)
 
uint32_t PrivateFindGlobalVariables (lldb_private::ConstString name, const lldb_private::CompilerDeclContext *parent_decl_ctx, const std::vector< uint32_t > &name_symbol_indexes, uint32_t max_matches, lldb_private::VariableList &variables)
 
void SetCompileUnit (SymbolFileDWARF *oso_dwarf, const lldb::CompUnitSP &cu_sp)
 
lldb::CompUnitSP GetCompileUnit (SymbolFileDWARF *oso_dwarf)
 
CompileUnitInfoGetCompileUnitInfo (SymbolFileDWARF *oso_dwarf)
 
lldb::TypeSP FindDefinitionTypeForDWARFDeclContext (const DWARFDeclContext &die_decl_ctx)
 
bool Supports_DW_AT_APPLE_objc_complete_type (SymbolFileDWARF *skip_dwarf_oso)
 
lldb::TypeSP FindCompleteObjCDefinitionTypeForDIE (const DWARFDIE &die, lldb_private::ConstString type_name, bool must_be_implementation)
 
UniqueDWARFASTTypeMapGetUniqueDWARFASTTypeMap ()
 
bool AddOSOFileRange (CompileUnitInfo *cu_info, lldb::addr_t exe_file_addr, lldb::addr_t exe_byte_size, lldb::addr_t oso_file_addr, lldb::addr_t oso_byte_size)
 
void FinalizeOSOFileRanges (CompileUnitInfo *cu_info)
 
bool LinkOSOAddress (lldb_private::Address &addr)
 Convert addr from a .o file address, to an executable address. More...
 
lldb::addr_t LinkOSOFileAddress (SymbolFileDWARF *oso_symfile, lldb::addr_t oso_file_addr)
 Convert a .o file "file address" to an executable "file address". More...
 
lldb_private::LineTableLinkOSOLineTable (SymbolFileDWARF *oso_symfile, lldb_private::LineTable *line_table)
 Given a line table full of lines with "file addresses" that are for a .o file represented by oso_symfile, link a new line table and return it. More...
 
size_t AddOSOARanges (SymbolFileDWARF *dwarf2Data, DWARFDebugAranges *debug_aranges)
 
- Protected Member Functions inherited from lldb_private::SymbolFile
void AssertModuleLock ()
 

Static Protected Member Functions

static uint32_t GetOSOIndexFromUserID (lldb::user_id_t uid)
 
static SymbolFileDWARFGetSymbolFileAsSymbolFileDWARF (SymbolFile *sym_file)
 
static int SymbolContainsSymbolWithIndex (uint32_t *symbol_idx_ptr, const CompileUnitInfo *comp_unit_info)
 
static int SymbolContainsSymbolWithID (lldb::user_id_t *symbol_idx_ptr, const CompileUnitInfo *comp_unit_info)
 

Protected Attributes

std::bitset< kNumFlagsm_flags
 
std::vector< CompileUnitInfom_compile_unit_infos
 
std::vector< uint32_tm_func_indexes
 
std::vector< uint32_tm_glob_indexes
 
std::map< std::pair< lldb_private::ConstString, llvm::sys::TimePoint<> >, OSOInfoSPm_oso_map
 
UniqueDWARFASTTypeMap m_unique_ast_type_map
 
lldb_private::LazyBool m_supports_DW_AT_APPLE_objc_complete_type
 
DebugMap m_debug_map
 
- Protected Attributes inherited from lldb_private::SymbolFile
ObjectFilem_obj_file
 
uint32_t m_abilities
 
bool m_calculated_abilities
 

Friends

class DebugMapModule
 
struct DIERef
 
class DWARFASTParserClang
 
class DWARFUnit
 
class SymbolFileDWARF
 

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)
}
 

Detailed Description

Definition at line 25 of file SymbolFileDWARFDebugMap.h.

Member Typedef Documentation

◆ DebugMap

Definition at line 289 of file SymbolFileDWARFDebugMap.h.

◆ FileRangeMap

Definition at line 150 of file SymbolFileDWARFDebugMap.h.

◆ OSOInfoSP

typedef std::shared_ptr<OSOInfo> SymbolFileDWARFDebugMap::OSOInfoSP
protected

Definition at line 146 of file SymbolFileDWARFDebugMap.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
kHaveInitializedOSOs 
kNumFlags 

Definition at line 133 of file SymbolFileDWARFDebugMap.h.

Constructor & Destructor Documentation

◆ SymbolFileDWARFDebugMap()

SymbolFileDWARFDebugMap::SymbolFileDWARFDebugMap ( lldb_private::ObjectFile ofile)

Definition at line 246 of file SymbolFileDWARFDebugMap.cpp.

◆ ~SymbolFileDWARFDebugMap()

SymbolFileDWARFDebugMap::~SymbolFileDWARFDebugMap ( )
override

Definition at line 251 of file SymbolFileDWARFDebugMap.cpp.

Member Function Documentation

◆ AddOSOARanges()

size_t SymbolFileDWARFDebugMap::AddOSOARanges ( SymbolFileDWARF dwarf2Data,
DWARFDebugAranges debug_aranges 
)
protected

◆ AddOSOFileRange()

bool SymbolFileDWARFDebugMap::AddOSOFileRange ( CompileUnitInfo cu_info,
lldb::addr_t  exe_file_addr,
lldb::addr_t  exe_byte_size,
lldb::addr_t  oso_file_addr,
lldb::addr_t  oso_byte_size 
)
protected

◆ CalculateAbilities()

uint32_t SymbolFileDWARFDebugMap::CalculateAbilities ( )
overridevirtual

◆ CompleteType()

bool SymbolFileDWARFDebugMap::CompleteType ( lldb_private::CompilerType compiler_type)
overridevirtual

◆ CreateInstance()

SymbolFile * SymbolFileDWARFDebugMap::CreateInstance ( lldb_private::ObjectFile obj_file)
static

Definition at line 242 of file SymbolFileDWARFDebugMap.cpp.

◆ DumpClangAST()

void SymbolFileDWARFDebugMap::DumpClangAST ( lldb_private::Stream s)
overridevirtual

Reimplemented from lldb_private::SymbolFile.

Definition at line 1226 of file SymbolFileDWARFDebugMap.cpp.

References SymbolFileDWARF::DumpClangAST(), and ForEachSymbolFile().

◆ FinalizeOSOFileRanges()

void SymbolFileDWARFDebugMap::FinalizeOSOFileRanges ( CompileUnitInfo cu_info)
protected

◆ FindCompleteObjCDefinitionTypeForDIE()

TypeSP SymbolFileDWARFDebugMap::FindCompleteObjCDefinitionTypeForDIE ( const DWARFDIE die,
lldb_private::ConstString  type_name,
bool  must_be_implementation 
)
protected

◆ FindDefinitionTypeForDWARFDeclContext()

TypeSP SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext ( const DWARFDeclContext die_decl_ctx)
protected

◆ FindFunctions() [1/2]

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

◆ FindFunctions() [2/2]

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

◆ FindGlobalVariables() [1/2]

uint32_t SymbolFileDWARFDebugMap::FindGlobalVariables ( lldb_private::ConstString  name,
const lldb_private::CompilerDeclContext parent_decl_ctx,
uint32_t  max_matches,
lldb_private::VariableList variables 
)
overridevirtual

◆ FindGlobalVariables() [2/2]

uint32_t SymbolFileDWARFDebugMap::FindGlobalVariables ( const lldb_private::RegularExpression regex,
uint32_t  max_matches,
lldb_private::VariableList variables 
)
overridevirtual

◆ FindNamespace()

CompilerDeclContext SymbolFileDWARFDebugMap::FindNamespace ( lldb_private::ConstString  name,
const lldb_private::CompilerDeclContext parent_decl_ctx 
)
overridevirtual

Reimplemented from lldb_private::SymbolFile.

Definition at line 1212 of file SymbolFileDWARFDebugMap.cpp.

References SymbolFileDWARF::FindNamespace(), and ForEachSymbolFile().

◆ FindTypes()

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

◆ ForEachSymbolFile()

void SymbolFileDWARFDebugMap::ForEachSymbolFile ( std::function< bool(SymbolFileDWARF *)>  closure)
inlineprotected

◆ GetCompileUnit()

lldb::CompUnitSP SymbolFileDWARFDebugMap::GetCompileUnit ( SymbolFileDWARF oso_dwarf)
protected

◆ GetCompileUnitInfo()

SymbolFileDWARFDebugMap::CompileUnitInfo * SymbolFileDWARFDebugMap::GetCompileUnitInfo ( SymbolFileDWARF oso_dwarf)
protected

◆ GetCompileUnitInfoForSymbolWithID()

SymbolFileDWARFDebugMap::CompileUnitInfo * SymbolFileDWARFDebugMap::GetCompileUnitInfoForSymbolWithID ( lldb::user_id_t  symbol_id,
uint32_t oso_idx_ptr 
)
protected

◆ GetCompileUnitInfoForSymbolWithIndex()

SymbolFileDWARFDebugMap::CompileUnitInfo * SymbolFileDWARFDebugMap::GetCompileUnitInfoForSymbolWithIndex ( uint32_t  symbol_idx,
uint32_t oso_idx_ptr 
)
protected

◆ GetCompUnitInfo() [1/2]

SymbolFileDWARFDebugMap::CompileUnitInfo * SymbolFileDWARFDebugMap::GetCompUnitInfo ( const lldb_private::SymbolContext sc)
protected

◆ GetCompUnitInfo() [2/2]

SymbolFileDWARFDebugMap::CompileUnitInfo * SymbolFileDWARFDebugMap::GetCompUnitInfo ( const lldb_private::CompileUnit comp_unit)
protected

Definition at line 606 of file SymbolFileDWARFDebugMap.cpp.

References GetNumCompileUnits(), and m_compile_unit_infos.

◆ GetCompUnitInfoIndex()

uint32_t SymbolFileDWARFDebugMap::GetCompUnitInfoIndex ( const CompileUnitInfo comp_unit_info)
protected

Definition at line 507 of file SymbolFileDWARFDebugMap.cpp.

References m_compile_unit_infos, and UINT32_MAX.

Referenced by GetModuleByCompUnitInfo(), and GetOSOIndexFromUserID().

◆ GetCompUnitInfosForModule()

size_t SymbolFileDWARFDebugMap::GetCompUnitInfosForModule ( const lldb_private::Module oso_module,
std::vector< CompileUnitInfo *> &  cu_infos 
)
protected

◆ GetDeclContextContainingUID()

CompilerDeclContext SymbolFileDWARFDebugMap::GetDeclContextContainingUID ( lldb::user_id_t  uid)
overridevirtual

◆ GetDeclContextForUID()

CompilerDeclContext SymbolFileDWARFDebugMap::GetDeclContextForUID ( lldb::user_id_t  uid)
overridevirtual

◆ GetDynamicArrayInfoForUID()

llvm::Optional< SymbolFile::ArrayInfo > SymbolFileDWARFDebugMap::GetDynamicArrayInfoForUID ( lldb::user_id_t  type_uid,
const lldb_private::ExecutionContext exe_ctx 
)
overridevirtual

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 713 of file SymbolFileDWARFDebugMap.cpp.

References SymbolFileDWARF::GetDynamicArrayInfoForUID(), GetOSOIndexFromUserID(), and GetSymbolFileByOSOIndex().

◆ GetFileSpecForSO()

bool SymbolFileDWARFDebugMap::GetFileSpecForSO ( uint32_t  oso_idx,
lldb_private::FileSpec file_spec 
)
protected

◆ GetModuleByCompUnitInfo()

Module * SymbolFileDWARFDebugMap::GetModuleByCompUnitInfo ( CompileUnitInfo comp_unit_info)
protected

◆ GetModuleByOSOIndex()

Module * SymbolFileDWARFDebugMap::GetModuleByOSOIndex ( uint32_t  oso_idx)
protected

◆ GetNumCompileUnits()

uint32_t SymbolFileDWARFDebugMap::GetNumCompileUnits ( )
overridevirtual

◆ GetObjectFileByCompUnitInfo()

ObjectFile * SymbolFileDWARFDebugMap::GetObjectFileByCompUnitInfo ( CompileUnitInfo comp_unit_info)
protected

◆ GetObjectFileByOSOIndex()

ObjectFile * SymbolFileDWARFDebugMap::GetObjectFileByOSOIndex ( uint32_t  oso_idx)
protected

◆ GetOSOIndexFromUserID()

static uint32_t SymbolFileDWARFDebugMap::GetOSOIndexFromUserID ( lldb::user_id_t  uid)
inlinestaticprotected

◆ GetPluginDescriptionStatic()

const char * SymbolFileDWARFDebugMap::GetPluginDescriptionStatic ( )
static

Definition at line 238 of file SymbolFileDWARFDebugMap.cpp.

◆ GetPluginName()

lldb_private::ConstString SymbolFileDWARFDebugMap::GetPluginName ( )
overridevirtual

Implements lldb_private::PluginInterface.

Definition at line 1234 of file SymbolFileDWARFDebugMap.cpp.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

lldb_private::ConstString SymbolFileDWARFDebugMap::GetPluginNameStatic ( )
static

Definition at line 233 of file SymbolFileDWARFDebugMap.cpp.

Referenced by GetPluginName().

◆ GetPluginVersion()

uint32_t SymbolFileDWARFDebugMap::GetPluginVersion ( )
overridevirtual

Implements lldb_private::PluginInterface.

Definition at line 1238 of file SymbolFileDWARFDebugMap.cpp.

◆ GetSymbolFile() [1/2]

SymbolFileDWARF * SymbolFileDWARFDebugMap::GetSymbolFile ( const lldb_private::SymbolContext sc)
protected

◆ GetSymbolFile() [2/2]

SymbolFileDWARF * SymbolFileDWARFDebugMap::GetSymbolFile ( const lldb_private::CompileUnit comp_unit)
protected

◆ GetSymbolFileAsSymbolFileDWARF()

SymbolFileDWARF * SymbolFileDWARFDebugMap::GetSymbolFileAsSymbolFileDWARF ( SymbolFile sym_file)
staticprotected

◆ GetSymbolFileByCompUnitInfo()

SymbolFileDWARF * SymbolFileDWARFDebugMap::GetSymbolFileByCompUnitInfo ( CompileUnitInfo comp_unit_info)
protected

◆ GetSymbolFileByOSOIndex()

SymbolFileDWARF * SymbolFileDWARFDebugMap::GetSymbolFileByOSOIndex ( uint32_t  oso_idx)
protected

◆ GetTypes()

size_t SymbolFileDWARFDebugMap::GetTypes ( lldb_private::SymbolContextScope sc_scope,
lldb::TypeClass  type_mask,
lldb_private::TypeList type_list 
)
overridevirtual

◆ GetUniqueDWARFASTTypeMap()

UniqueDWARFASTTypeMap& SymbolFileDWARFDebugMap::GetUniqueDWARFASTTypeMap ( )
inlineprotected

◆ Initialize()

void SymbolFileDWARFDebugMap::Initialize ( )
static

◆ InitializeObject()

void SymbolFileDWARFDebugMap::InitializeObject ( )
overridevirtual

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 253 of file SymbolFileDWARFDebugMap.cpp.

◆ InitOSO()

void SymbolFileDWARFDebugMap::InitOSO ( )
protected

◆ LinkOSOAddress()

bool SymbolFileDWARFDebugMap::LinkOSOAddress ( lldb_private::Address addr)
protected

◆ LinkOSOFileAddress()

lldb::addr_t SymbolFileDWARFDebugMap::LinkOSOFileAddress ( SymbolFileDWARF oso_symfile,
lldb::addr_t  oso_file_addr 
)
protected

Convert a .o file "file address" to an executable "file address".

Parameters
[in]oso_symfileThe DWARF symbol file that contains oso_file_addr
[in]oso_file_addrA .o file "file address" to convert.
Returns
LLDB_INVALID_ADDRESS if oso_file_addr is not in the linked executable, otherwise a valid "file address" from the linked executable that contains the debug map.

Definition at line 1363 of file SymbolFileDWARFDebugMap.cpp.

References lldb_private::RangeData< B, S, T >::data, lldb_private::RangeDataVector< B, S, T, N >::FindEntryThatContains(), GetCompileUnitInfo(), SymbolFileDWARFDebugMap::CompileUnitInfo::GetFileRangeMap(), lldb_private::Range< B, S >::GetRangeBase(), LLDB_INVALID_ADDRESS, and m_debug_map.

Referenced by SymbolFileDWARF::ParseVariableDIE().

◆ LinkOSOLineTable()

LineTable * SymbolFileDWARFDebugMap::LinkOSOLineTable ( SymbolFileDWARF oso_symfile,
lldb_private::LineTable line_table 
)
protected

Given a line table full of lines with "file addresses" that are for a .o file represented by oso_symfile, link a new line table and return it.

Parameters
[in]oso_symfileThe DWARF symbol file that produced the line_table
[in]addrA section offset address from a .o file
Returns
Returns a valid line table full of linked addresses, or NULL if none of the line table addresses exist in the main executable.

Definition at line 1412 of file SymbolFileDWARFDebugMap.cpp.

References GetCompileUnitInfo(), SymbolFileDWARFDebugMap::CompileUnitInfo::GetFileRangeMap(), and lldb_private::LineTable::LinkLineTable().

Referenced by SymbolFileDWARF::ParseLineTable().

◆ ParseBlocksRecursive()

size_t SymbolFileDWARFDebugMap::ParseBlocksRecursive ( lldb_private::Function func)
overridevirtual

◆ ParseCallEdgesInFunction()

std::vector< lldb_private::CallEdge > SymbolFileDWARFDebugMap::ParseCallEdgesInFunction ( lldb_private::UserID  func_id)
overridevirtual

◆ ParseCompileUnitAtIndex()

CompUnitSP SymbolFileDWARFDebugMap::ParseCompileUnitAtIndex ( uint32_t  index)
overridevirtual

◆ ParseDebugMacros()

bool SymbolFileDWARFDebugMap::ParseDebugMacros ( lldb_private::CompileUnit comp_unit)
overridevirtual

◆ ParseDeclsForContext()

void SymbolFileDWARFDebugMap::ParseDeclsForContext ( lldb_private::CompilerDeclContext  decl_ctx)
overridevirtual

◆ ParseFunctions()

size_t SymbolFileDWARFDebugMap::ParseFunctions ( lldb_private::CompileUnit comp_unit)
overridevirtual

◆ ParseImportedModules()

bool SymbolFileDWARFDebugMap::ParseImportedModules ( const lldb_private::SymbolContext sc,
std::vector< lldb_private::SourceModule > &  imported_modules 
)
overridevirtual

◆ ParseIsOptimized()

bool SymbolFileDWARFDebugMap::ParseIsOptimized ( lldb_private::CompileUnit comp_unit)
overridevirtual

Reimplemented from lldb_private::SymbolFile.

Definition at line 663 of file SymbolFileDWARFDebugMap.cpp.

References GetSymbolFile(), and SymbolFileDWARF::ParseIsOptimized().

◆ ParseLanguage()

lldb::LanguageType SymbolFileDWARFDebugMap::ParseLanguage ( lldb_private::CompileUnit comp_unit)
overridevirtual

◆ ParseLineTable()

bool SymbolFileDWARFDebugMap::ParseLineTable ( lldb_private::CompileUnit comp_unit)
overridevirtual

◆ ParseSupportFiles()

bool SymbolFileDWARFDebugMap::ParseSupportFiles ( lldb_private::CompileUnit comp_unit,
lldb_private::FileSpecList &  support_files 
)
override

◆ ParseTypes()

size_t SymbolFileDWARFDebugMap::ParseTypes ( lldb_private::CompileUnit comp_unit)
overridevirtual

◆ ParseVariablesForContext()

size_t SymbolFileDWARFDebugMap::ParseVariablesForContext ( const lldb_private::SymbolContext sc)
overridevirtual

◆ PrivateFindGlobalVariables()

uint32_t SymbolFileDWARFDebugMap::PrivateFindGlobalVariables ( lldb_private::ConstString  name,
const lldb_private::CompilerDeclContext parent_decl_ctx,
const std::vector< uint32_t > &  name_symbol_indexes,
uint32_t  max_matches,
lldb_private::VariableList variables 
)
protected

◆ ResolveSymbolContext() [1/2]

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

Implements lldb_private::SymbolFile.

Referenced by CompleteType().

◆ ResolveSymbolContext() [2/2]

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

Reimplemented from lldb_private::SymbolFile.

◆ ResolveTypeUID()

Type * SymbolFileDWARFDebugMap::ResolveTypeUID ( lldb::user_id_t  type_uid)
overridevirtual

◆ SetCompileUnit()

void SymbolFileDWARFDebugMap::SetCompileUnit ( SymbolFileDWARF oso_dwarf,
const lldb::CompUnitSP &  cu_sp 
)
protected

◆ Supports_DW_AT_APPLE_objc_complete_type()

bool SymbolFileDWARFDebugMap::Supports_DW_AT_APPLE_objc_complete_type ( SymbolFileDWARF skip_dwarf_oso)
protected

◆ SymbolContainsSymbolWithID()

int SymbolFileDWARFDebugMap::SymbolContainsSymbolWithID ( lldb::user_id_t symbol_idx_ptr,
const CompileUnitInfo comp_unit_info 
)
staticprotected

◆ SymbolContainsSymbolWithIndex()

int SymbolFileDWARFDebugMap::SymbolContainsSymbolWithIndex ( uint32_t symbol_idx_ptr,
const CompileUnitInfo comp_unit_info 
)
staticprotected

◆ Terminate()

void SymbolFileDWARFDebugMap::Terminate ( )
static

Friends And Related Function Documentation

◆ DebugMapModule

friend class DebugMapModule
friend

Definition at line 135 of file SymbolFileDWARFDebugMap.h.

◆ DIERef

friend struct DIERef
friend

Definition at line 136 of file SymbolFileDWARFDebugMap.h.

◆ DWARFASTParserClang

friend class DWARFASTParserClang
friend

Definition at line 137 of file SymbolFileDWARFDebugMap.h.

◆ DWARFUnit

friend class DWARFUnit
friend

Definition at line 138 of file SymbolFileDWARFDebugMap.h.

◆ SymbolFileDWARF

friend class SymbolFileDWARF
friend

Definition at line 139 of file SymbolFileDWARFDebugMap.h.

Member Data Documentation

◆ m_compile_unit_infos

std::vector<CompileUnitInfo> SymbolFileDWARFDebugMap::m_compile_unit_infos
protected

◆ m_debug_map

DebugMap SymbolFileDWARFDebugMap::m_debug_map
protected

◆ m_flags

std::bitset<kNumFlags> SymbolFileDWARFDebugMap::m_flags
protected

Definition at line 292 of file SymbolFileDWARFDebugMap.h.

Referenced by InitOSO().

◆ m_func_indexes

std::vector<uint32_t> SymbolFileDWARFDebugMap::m_func_indexes
protected

Definition at line 294 of file SymbolFileDWARFDebugMap.h.

Referenced by InitOSO().

◆ m_glob_indexes

std::vector<uint32_t> SymbolFileDWARFDebugMap::m_glob_indexes
protected

Definition at line 295 of file SymbolFileDWARFDebugMap.h.

Referenced by InitOSO().

◆ m_oso_map

std::map<std::pair<lldb_private::ConstString, llvm::sys::TimePoint<> >, OSOInfoSP> SymbolFileDWARFDebugMap::m_oso_map
protected

Definition at line 298 of file SymbolFileDWARFDebugMap.h.

Referenced by GetModuleByCompUnitInfo().

◆ m_supports_DW_AT_APPLE_objc_complete_type

lldb_private::LazyBool SymbolFileDWARFDebugMap::m_supports_DW_AT_APPLE_objc_complete_type
protected

Definition at line 300 of file SymbolFileDWARFDebugMap.h.

Referenced by Supports_DW_AT_APPLE_objc_complete_type().

◆ m_unique_ast_type_map

UniqueDWARFASTTypeMap SymbolFileDWARFDebugMap::m_unique_ast_type_map
protected

Definition at line 299 of file SymbolFileDWARFDebugMap.h.

Referenced by GetUniqueDWARFASTTypeMap().


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