Go to the documentation of this file.
9 #ifndef LLDB_SYMBOL_SYMBOLFILEONDEMAND_H
10 #define LLDB_SYMBOL_SYMBOLFILEONDEMAND_H
39 bool isA(
const void *ClassID)
const override {
83 lldb_private::FileSpecList &support_files)
override;
91 std::vector<lldb_private::SourceModule> &imported_modules)
override;
117 lldb::SymbolContextItem resolve_scope,
122 lldb::SymbolContextItem resolve_scope,
140 lldb::FunctionNameType name_type_mask,
141 bool include_inlines,
145 bool include_inlines,
150 std::vector<lldb_private::ConstString> &mangled_names)
override;
156 llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files,
159 void FindTypes(llvm::ArrayRef<lldb_private::CompilerContext> pattern,
161 llvm::DenseSet<SymbolFile *> &searched_symbol_files,
165 lldb::TypeClass type_mask,
168 llvm::Expected<lldb_private::TypeSystem &>
175 std::vector<std::unique_ptr<lldb_private::CallEdge>>
180 const RegisterInfoResolver &resolver)
override;
235 #endif // LLDB_SYMBOL_SYMBOLFILEONDEMAND_H
Provides public interface for all SymbolFiles.
void PreloadSymbols() override
const ObjectFile * GetObjectFile() const override
virtual FileSpec & GetFileSpec()
Get accessor to the object file specification.
size_t ParseBlocksRecursive(lldb_private::Function &func) override
bool ParseImportedModules(const lldb_private::SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override
lldb::UnwindPlanSP GetUnwindPlan(const Address &address, const RegisterInfoResolver &resolver) override
uint32_t CalculateAbilities() override
void DumpClangAST(lldb_private::Stream &s) override
lldb_private::StatsDuration::Duration GetDebugInfoIndexTime() override
Return the time it took to index the debug information in the object file.
std::chrono::duration< double > Duration
ConstString GetSymbolFileName()
llvm::Expected< lldb::addr_t > GetParameterStackSize(Symbol &symbol) override
Return the number of stack bytes taken up by the parameters to this function.
An abstraction for Xcode-style SDKs that works like ArchSpec.
LanguageType
Programming language type.
Represents a generic declaration such as a function declaration.
bool ParseSupportFiles(lldb_private::CompileUnit &comp_unit, lldb_private::FileSpecList &support_files) override
ObjectFile * GetObjectFile() override
llvm::Expected< lldb_private::TypeSystem & > GetTypeSystemForLanguage(lldb::LanguageType language) override
Symtab * GetSymtab() override
SymbolFileOnDemand(std::unique_ptr< SymbolFile > &&symbol_file)
size_t ParseVariablesForContext(const lldb_private::SymbolContext &sc) override
~SymbolFileOnDemand() override
size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override
void SectionFileAddressesChanged() override
Notify the SymbolFile that the file addresses in the Sections for this module have been changed.
lldb::LanguageType ParseLanguage(lldb_private::CompileUnit &comp_unit) override
static char ID
LLVM RTTI support.
uint32_t GetAbilities() override
Get a mask of what this symbol file supports for the object file that it was constructed with.
bool m_debug_info_enabled
void FindGlobalVariables(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::VariableList &variables) override
static bool classof(const SymbolFile *obj)
bool isA(const void *ClassID) const override
LLVM RTTI support.
lldb_private::CompilerDeclContext GetDeclContextContainingUID(lldb::user_id_t uid) override
bool GetDebugInfoIndexWasSavedToCache() const override
uint64_t GetDebugInfoSize() override
Metrics gathering functions.
lldb_private::XcodeSDK ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override
Return the Xcode SDK comp_unit was compiled against.
bool GetDebugInfoIndexWasLoadedFromCache() const override
Accessors for the bool that indicates if the debug info index was loaded from, or saved to the module...
bool GetLoadDebugInfoEnabled() override
Whether debug info will be loaded or not.
size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override
virtual bool isA(const void *ClassID) const
LLVM RTTI support.
void FindFunctions(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, lldb::FunctionNameType name_type_mask, bool include_inlines, lldb_private::SymbolContextList &sc_list) override
lldb_private::CompilerDeclContext FindNamespace(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx) override
void FindTypes(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, llvm::DenseSet< lldb_private::SymbolFile * > &searched_symbol_files, lldb_private::TypeMap &types) override
string(SUBSTRING ${p} 10 -1 pStripped) if($
lldb_private::Type * ResolveTypeUID(lldb::user_id_t type_uid) override
Represents a generic declaration context in a program.
std::vector< std::unique_ptr< lldb_private::CallEdge > > ParseCallEdgesInFunction(UserID func_id) override
void GetMangledNamesForFunction(const std::string &scope_qualified_name, std::vector< lldb_private::ConstString > &mangled_names) override
bool ForEachExternalModule(lldb_private::CompileUnit &, llvm::DenseSet< lldb_private::SymbolFile * > &, llvm::function_ref< bool(lldb_private::Module &)>) override
llvm::Optional< ArrayInfo > GetDynamicArrayInfoForUID(lldb::user_id_t type_uid, const lldb_private::ExecutionContext *exe_ctx) override
If type_uid points to an array type, return its characteristics.
uint32_t ResolveSymbolContext(const lldb_private::Address &so_addr, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContext &sc) override
ObjectFile * GetMainObjectFile() override
lldb_private::CompilerDecl GetDeclForUID(lldb::user_id_t uid) override
llvm::StringRef GetPluginName() override
SymbolFileOnDemand wraps an actual SymbolFile by providing on demand symbol parsing/indexing to impro...
void InitializeObject() override
Initialize the SymbolFile object.
bool ParseIsOptimized(lldb_private::CompileUnit &comp_unit) override
void SetDebugInfoIndexWasLoadedFromCache() override
lldb_private::CompilerDeclContext GetDeclContextForUID(lldb::user_id_t uid) override
lldb_private::StatsDuration::Duration GetDebugInfoParseTime() override
Return the time taken to parse the debug information.
Generic representation of a type in a programming language.
void ParseDeclsForContext(lldb_private::CompilerDeclContext decl_ctx) override
void Dump(lldb_private::Stream &s) override
A class that represents a running process on the host machine.
SymbolFile * GetBackingSymbolFile() override
SymbolFileOnDemand class overrides this to return the underlying backing SymbolFile implementation th...
A SmallBitVector that represents a set of source languages (lldb::LanguageType).
std::recursive_mutex & GetModuleMutex() const override
Symbols file subclasses should override this to return the Module that owns the TypeSystem that this ...
void SetDebugInfoIndexWasSavedToCache() override
void SetLoadDebugInfoEnabled() override
Specify debug info should be loaded.
uint32_t GetNumCompileUnits() override
lldb::CompUnitSP GetCompileUnitAtIndex(uint32_t idx) override
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
void GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override
bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override
std::unique_ptr< SymbolFile > m_sym_file_impl
ConstString & GetFilename()
Filename string get accessor.
bool CompleteType(lldb_private::CompilerType &compiler_type) override
bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override