LLDB  mainline
SymbolFileOnDemand.h
Go to the documentation of this file.
1 //===-- SymbolFileOnDemand.h ------------------------------------*- C++-*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SYMBOL_SYMBOLFILEONDEMAND_H
10 #define LLDB_SYMBOL_SYMBOLFILEONDEMAND_H
11 
12 #include <mutex>
13 #include <vector>
14 
15 #include "lldb/Symbol/ObjectFile.h"
17 #include "lldb/Symbol/SymbolFile.h"
18 #include "lldb/Target/Statistics.h"
20 #include "lldb/Utility/Flags.h"
21 #include "lldb/Utility/LLDBLog.h"
22 #include "lldb/Utility/Log.h"
23 #include "lldb/lldb-private.h"
24 
25 namespace lldb_private {
26 
27 /// SymbolFileOnDemand wraps an actual SymbolFile by providing
28 /// on demand symbol parsing/indexing to improve performance.
29 /// By default SymbolFileOnDemand will skip load the underlying
30 /// symbols. Any client can on demand hydrate the underlying
31 /// SymbolFile via SymbolFile::SetLoadDebugInfoEnabled().
33  /// LLVM RTTI support.
34  static char ID;
35 
36 public:
37  /// LLVM RTTI support.
38  /// \{
39  bool isA(const void *ClassID) const override {
40  return ClassID == &ID || SymbolFile::isA(ClassID);
41  }
42  static bool classof(const SymbolFile *obj) { return obj->isA(&ID); }
43  /// \}
44 
45  SymbolFileOnDemand(std::unique_ptr<SymbolFile> &&symbol_file);
46  ~SymbolFileOnDemand() override;
47 
48  // PluginInterface protocol
49  llvm::StringRef GetPluginName() override { return "ondemand"; }
50 
51  bool GetLoadDebugInfoEnabled() override { return m_debug_info_enabled; }
52 
53  void SetLoadDebugInfoEnabled() override;
54 
55  uint32_t GetNumCompileUnits() override;
56  lldb::CompUnitSP GetCompileUnitAtIndex(uint32_t idx) override;
57 
58  SymbolFile *GetBackingSymbolFile() override { return m_sym_file_impl.get(); }
59 
60  uint32_t CalculateAbilities() override;
61 
62  std::recursive_mutex &GetModuleMutex() const override;
63 
65  ParseLanguage(lldb_private::CompileUnit &comp_unit) override;
66 
68  ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override;
69 
70  void InitializeObject() override;
71 
72  size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override;
73 
74  bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override;
75 
76  bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override;
77 
79  lldb_private::CompileUnit &, llvm::DenseSet<lldb_private::SymbolFile *> &,
80  llvm::function_ref<bool(lldb_private::Module &)>) override;
81 
83  lldb_private::FileSpecList &support_files) override;
84 
85  bool ParseIsOptimized(lldb_private::CompileUnit &comp_unit) override;
86 
87  size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override;
88 
91  std::vector<lldb_private::SourceModule> &imported_modules) override;
92 
93  size_t ParseBlocksRecursive(lldb_private::Function &func) override;
94 
95  size_t
97 
99  llvm::Optional<ArrayInfo> GetDynamicArrayInfoForUID(
100  lldb::user_id_t type_uid,
101  const lldb_private::ExecutionContext *exe_ctx) override;
102 
103  bool CompleteType(lldb_private::CompilerType &compiler_type) override;
104 
106 
109 
112 
113  void
115 
117  lldb::SymbolContextItem resolve_scope,
118  lldb_private::SymbolContext &sc) override;
119 
121  const lldb_private::SourceLocationSpec &src_location_spec,
122  lldb::SymbolContextItem resolve_scope,
123  lldb_private::SymbolContextList &sc_list) override;
124 
125  void Dump(lldb_private::Stream &s) override;
126  void DumpClangAST(lldb_private::Stream &s) override;
127 
128  void
130  const lldb_private::CompilerDeclContext &parent_decl_ctx,
131  uint32_t max_matches,
132  lldb_private::VariableList &variables) override;
133 
135  uint32_t max_matches,
136  lldb_private::VariableList &variables) override;
137 
139  const lldb_private::CompilerDeclContext &parent_decl_ctx,
140  lldb::FunctionNameType name_type_mask,
141  bool include_inlines,
142  lldb_private::SymbolContextList &sc_list) override;
143 
145  bool include_inlines,
146  lldb_private::SymbolContextList &sc_list) override;
147 
149  const std::string &scope_qualified_name,
150  std::vector<lldb_private::ConstString> &mangled_names) override;
151 
152  void
154  const lldb_private::CompilerDeclContext &parent_decl_ctx,
155  uint32_t max_matches,
156  llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files,
157  lldb_private::TypeMap &types) override;
158 
159  void FindTypes(llvm::ArrayRef<lldb_private::CompilerContext> pattern,
160  lldb_private::LanguageSet languages,
161  llvm::DenseSet<SymbolFile *> &searched_symbol_files,
162  lldb_private::TypeMap &types) override;
163 
165  lldb::TypeClass type_mask,
166  lldb_private::TypeList &type_list) override;
167 
168  llvm::Expected<lldb_private::TypeSystem &>
169  GetTypeSystemForLanguage(lldb::LanguageType language) override;
170 
173  const lldb_private::CompilerDeclContext &parent_decl_ctx) override;
174 
175  std::vector<std::unique_ptr<lldb_private::CallEdge>>
176  ParseCallEdgesInFunction(UserID func_id) override;
177 
178  lldb::UnwindPlanSP
179  GetUnwindPlan(const Address &address,
180  const RegisterInfoResolver &resolver) override;
181 
182  llvm::Expected<lldb::addr_t> GetParameterStackSize(Symbol &symbol) override;
183 
184  void PreloadSymbols() override;
185 
186  uint64_t GetDebugInfoSize() override;
189 
190  uint32_t GetAbilities() override;
191 
192  Symtab *GetSymtab() override { return m_sym_file_impl->GetSymtab(); }
193 
194  ObjectFile *GetObjectFile() override {
195  return m_sym_file_impl->GetObjectFile();
196  }
197  const ObjectFile *GetObjectFile() const override {
198  return m_sym_file_impl->GetObjectFile();
199  }
201  return m_sym_file_impl->GetMainObjectFile();
202  }
203 
204  void SectionFileAddressesChanged() override {
205  return m_sym_file_impl->SectionFileAddressesChanged();
206  }
207 
208  bool GetDebugInfoIndexWasLoadedFromCache() const override {
209  return m_sym_file_impl->GetDebugInfoIndexWasLoadedFromCache();
210  }
212  m_sym_file_impl->SetDebugInfoIndexWasLoadedFromCache();
213  }
214  bool GetDebugInfoIndexWasSavedToCache() const override {
215  return m_sym_file_impl->GetDebugInfoIndexWasSavedToCache();
216  }
218  m_sym_file_impl->SetDebugInfoIndexWasSavedToCache();
219  }
220 
221 private:
223 
225  return GetObjectFile()->GetFileSpec().GetFilename();
226  }
227 
228 private:
229  bool m_debug_info_enabled = false;
230  bool m_preload_symbols = false;
231  std::unique_ptr<SymbolFile> m_sym_file_impl;
232 };
233 } // namespace lldb_private
234 
235 #endif // LLDB_SYMBOL_SYMBOLFILEONDEMAND_H
lldb_private::SymbolFile
Provides public interface for all SymbolFiles.
Definition: SymbolFile.h:45
lldb_private::SymbolFileOnDemand::PreloadSymbols
void PreloadSymbols() override
Definition: SymbolFileOnDemand.cpp:530
lldb_private::SymbolFileOnDemand::GetObjectFile
const ObjectFile * GetObjectFile() const override
Definition: SymbolFileOnDemand.h:197
lldb_private::ExecutionContext
Definition: ExecutionContext.h:292
lldb_private::RegularExpression
Definition: RegularExpression.h:18
lldb_private::ObjectFile::GetFileSpec
virtual FileSpec & GetFileSpec()
Get accessor to the object file specification.
Definition: ObjectFile.h:292
lldb_private::SymbolFileOnDemand::ParseBlocksRecursive
size_t ParseBlocksRecursive(lldb_private::Function &func) override
Definition: SymbolFileOnDemand.cpp:168
lldb_private::SymbolFileOnDemand::ParseImportedModules
bool ParseImportedModules(const lldb_private::SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override
Definition: SymbolFileOnDemand.cpp:149
lldb_private::Symbol
Definition: Symbol.h:20
lldb_private::SourceLocationSpec
Definition: SourceLocationSpec.h:27
lldb_private::SymbolFileOnDemand::GetUnwindPlan
lldb::UnwindPlanSP GetUnwindPlan(const Address &address, const RegisterInfoResolver &resolver) override
Definition: SymbolFileOnDemand.cpp:502
lldb_private::SymbolFileOnDemand::CalculateAbilities
uint32_t CalculateAbilities() override
Definition: SymbolFileOnDemand.cpp:27
lldb_private::SymbolFileOnDemand::DumpClangAST
void DumpClangAST(lldb_private::Stream &s) override
Definition: SymbolFileOnDemand.cpp:298
lldb_private::UserID
Definition: UserID.h:31
lldb_private::SymbolFileOnDemand::GetDebugInfoIndexTime
lldb_private::StatsDuration::Duration GetDebugInfoIndexTime() override
Return the time it took to index the debug information in the object file.
Definition: SymbolFileOnDemand.cpp:554
lldb_private::StatsDuration::Duration
std::chrono::duration< double > Duration
Definition: Statistics.h:29
lldb_private::SymbolFileOnDemand::GetSymbolFileName
ConstString GetSymbolFileName()
Definition: SymbolFileOnDemand.h:224
lldb_private::SymbolFileOnDemand::GetParameterStackSize
llvm::Expected< lldb::addr_t > GetParameterStackSize(Symbol &symbol) override
Return the number of stack bytes taken up by the parameters to this function.
Definition: SymbolFileOnDemand.cpp:513
lldb_private::XcodeSDK
An abstraction for Xcode-style SDKs that works like ArchSpec.
Definition: XcodeSDK.h:24
lldb::LanguageType
LanguageType
Programming language type.
Definition: lldb-enumerations.h:436
lldb_private::LLDBLog::OnDemand
@ OnDemand
lldb_private::SymbolContextList
Definition: SymbolContext.h:379
lldb_private::CompilerDecl
Represents a generic declaration such as a function declaration.
Definition: CompilerDecl.h:28
lldb_private::Module
Definition: Module.h:85
lldb_private::SymbolFileOnDemand::ParseSupportFiles
bool ParseSupportFiles(lldb_private::CompileUnit &comp_unit, lldb_private::FileSpecList &support_files) override
Definition: SymbolFileOnDemand.cpp:116
lldb_private::SymbolFileOnDemand::GetObjectFile
ObjectFile * GetObjectFile() override
Definition: SymbolFileOnDemand.h:194
lldb_private::Stream
Definition: Stream.h:28
lldb_private::SymbolFileOnDemand::GetTypeSystemForLanguage
llvm::Expected< lldb_private::TypeSystem & > GetTypeSystemForLanguage(lldb::LanguageType language) override
Definition: SymbolFileOnDemand.cpp:460
lldb_private::SymbolFileOnDemand::GetSymtab
Symtab * GetSymtab() override
Definition: SymbolFileOnDemand.h:192
lldb_private::SymbolContext
Definition: SymbolContext.h:33
lldb_private::SymbolFileOnDemand::SymbolFileOnDemand
SymbolFileOnDemand(std::unique_ptr< SymbolFile > &&symbol_file)
Definition: SymbolFileOnDemand.cpp:21
lldb_private::SymbolFileOnDemand::ParseVariablesForContext
size_t ParseVariablesForContext(const lldb_private::SymbolContext &sc) override
Definition: SymbolFileOnDemand.cpp:177
lldb_private::VariableList
Definition: VariableList.h:18
lldb_private::CompileUnit
Definition: CompileUnit.h:38
lldb_private::SymbolFileOnDemand::~SymbolFileOnDemand
~SymbolFileOnDemand() override
lldb_private::SymbolFileOnDemand::GetLog
Log * GetLog() const
Definition: SymbolFileOnDemand.h:222
lldb_private::SymbolFileOnDemand::ParseFunctions
size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileOnDemand.cpp:75
lldb_private::SymbolFileOnDemand::SectionFileAddressesChanged
void SectionFileAddressesChanged() override
Notify the SymbolFile that the file addresses in the Sections for this module have been changed.
Definition: SymbolFileOnDemand.h:204
lldb_private::SymbolFileOnDemand::ParseLanguage
lldb::LanguageType ParseLanguage(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileOnDemand.cpp:46
lldb_private::SymbolFileOnDemand::ID
static char ID
LLVM RTTI support.
Definition: SymbolFileOnDemand.h:34
lldb_private::Function
Definition: Function.h:409
lldb_private::SymbolFileOnDemand::GetAbilities
uint32_t GetAbilities() override
Get a mask of what this symbol file supports for the object file that it was constructed with.
Definition: SymbolFileOnDemand.cpp:583
lldb_private::SymbolFileOnDemand::m_debug_info_enabled
bool m_debug_info_enabled
Definition: SymbolFileOnDemand.h:229
lldb_private::SymbolFileOnDemand::FindGlobalVariables
void FindGlobalVariables(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::VariableList &variables) override
Definition: SymbolFileOnDemand.cpp:318
Log.h
lldb_private::SymbolFileOnDemand::classof
static bool classof(const SymbolFile *obj)
Definition: SymbolFileOnDemand.h:42
lldb_private::SymbolFileOnDemand::isA
bool isA(const void *ClassID) const override
LLVM RTTI support.
Definition: SymbolFileOnDemand.h:39
lldb_private::SymbolFileOnDemand::GetDeclContextContainingUID
lldb_private::CompilerDeclContext GetDeclContextContainingUID(lldb::user_id_t uid) override
Definition: SymbolFileOnDemand.cpp:247
lldb_private::SymbolFileOnDemand::GetDebugInfoIndexWasSavedToCache
bool GetDebugInfoIndexWasSavedToCache() const override
Definition: SymbolFileOnDemand.h:214
lldb_private::SymbolFileOnDemand::GetDebugInfoSize
uint64_t GetDebugInfoSize() override
Metrics gathering functions.
Definition: SymbolFileOnDemand.cpp:540
lldb_private::SymbolFileOnDemand::ParseXcodeSDK
lldb_private::XcodeSDK ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override
Return the Xcode SDK comp_unit was compiled against.
Definition: SymbolFileOnDemand.cpp:60
lldb_private::SymbolFileOnDemand::GetDebugInfoIndexWasLoadedFromCache
bool GetDebugInfoIndexWasLoadedFromCache() const override
Accessors for the bool that indicates if the debug info index was loaded from, or saved to the module...
Definition: SymbolFileOnDemand.h:208
lldb_private::SymbolFileOnDemand::GetLoadDebugInfoEnabled
bool GetLoadDebugInfoEnabled() override
Whether debug info will be loaded or not.
Definition: SymbolFileOnDemand.h:51
lldb_private::ConstString
Definition: ConstString.h:40
lldb_private::SymbolFileOnDemand::ParseTypes
size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileOnDemand.cpp:140
lldb_private::SymbolFile::isA
virtual bool isA(const void *ClassID) const
LLVM RTTI support.
Definition: SymbolFile.h:52
lldb_private::SymbolFileOnDemand::FindFunctions
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::SymbolFileOnDemand::FindNamespace
lldb_private::CompilerDeclContext FindNamespace(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx) override
Definition: SymbolFileOnDemand.cpp:473
lldb_private::SymbolFileOnDemand::FindTypes
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
Definition: SymbolFileOnDemand.cpp:422
lldb_private::SymbolFileOnDemand::m_preload_symbols
bool m_preload_symbols
Definition: SymbolFileOnDemand.h:230
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition: Plugins/CMakeLists.txt:40
lldb_private::SymbolFileOnDemand::ResolveTypeUID
lldb_private::Type * ResolveTypeUID(lldb::user_id_t type_uid) override
Definition: SymbolFileOnDemand.cpp:186
lldb_private::TypeMap
Definition: TypeMap.h:20
lldb_private::CompilerDeclContext
Represents a generic declaration context in a program.
Definition: CompilerDeclContext.h:30
lldb_private::SymbolFileOnDemand::ParseCallEdgesInFunction
std::vector< std::unique_ptr< lldb_private::CallEdge > > ParseCallEdgesInFunction(UserID func_id) override
Definition: SymbolFileOnDemand.cpp:484
lldb_private::SymbolContextScope
Definition: SymbolContextScope.h:64
ObjectFile.h
lldb-private.h
lldb_private::SymbolFileOnDemand::GetMangledNamesForFunction
void GetMangledNamesForFunction(const std::string &scope_qualified_name, std::vector< lldb_private::ConstString > &mangled_names) override
Definition: SymbolFileOnDemand.cpp:409
lldb_private::SymbolFileOnDemand::ForEachExternalModule
bool ForEachExternalModule(lldb_private::CompileUnit &, llvm::DenseSet< lldb_private::SymbolFile * > &, llvm::function_ref< bool(lldb_private::Module &)>) override
Definition: SymbolFileOnDemand.cpp:102
lldb_private::SymbolFileOnDemand::GetDynamicArrayInfoForUID
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.
Definition: SymbolFileOnDemand.cpp:201
lldb_private::SymbolFileOnDemand::ResolveSymbolContext
uint32_t ResolveSymbolContext(const lldb_private::Address &so_addr, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContext &sc) override
lldb_private::Symtab
Definition: Symtab.h:22
lldb_private::SymbolFileOnDemand::GetMainObjectFile
ObjectFile * GetMainObjectFile() override
Definition: SymbolFileOnDemand.h:200
lldb_private::SymbolFileOnDemand::GetDeclForUID
lldb_private::CompilerDecl GetDeclForUID(lldb::user_id_t uid) override
Definition: SymbolFileOnDemand.cpp:220
uint32_t
lldb_private::SymbolFileOnDemand::GetPluginName
llvm::StringRef GetPluginName() override
Definition: SymbolFileOnDemand.h:49
lldb_private::SymbolFileOnDemand
SymbolFileOnDemand wraps an actual SymbolFile by providing on demand symbol parsing/indexing to impro...
Definition: SymbolFileOnDemand.h:32
lldb_private::SymbolFileOnDemand::InitializeObject
void InitializeObject() override
Initialize the SymbolFile object.
Definition: SymbolFileOnDemand.cpp:37
lldb_private::SymbolFileOnDemand::ParseIsOptimized
bool ParseIsOptimized(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileOnDemand.cpp:125
lldb_private::Address
Definition: Address.h:59
lldb_private::SymbolFileOnDemand::SetDebugInfoIndexWasLoadedFromCache
void SetDebugInfoIndexWasLoadedFromCache() override
Definition: SymbolFileOnDemand.h:211
lldb_private::Type
Definition: Type.h:66
lldb_private::SymbolFileOnDemand::GetDeclContextForUID
lldb_private::CompilerDeclContext GetDeclContextForUID(lldb::user_id_t uid) override
Definition: SymbolFileOnDemand.cpp:237
lldb_private::SymbolFileOnDemand::GetDebugInfoParseTime
lldb_private::StatsDuration::Duration GetDebugInfoParseTime() override
Return the time taken to parse the debug information.
Definition: SymbolFileOnDemand.cpp:547
lldb_private::CompilerType
Generic representation of a type in a programming language.
Definition: CompilerType.h:33
lldb_private::SymbolFileOnDemand::ParseDeclsForContext
void ParseDeclsForContext(lldb_private::CompilerDeclContext decl_ctx) override
Definition: SymbolFileOnDemand.cpp:256
lldb_private::SymbolFileOnDemand::Dump
void Dump(lldb_private::Stream &s) override
Definition: SymbolFileOnDemand.cpp:289
Statistics.h
lldb::user_id_t
uint64_t user_id_t
Definition: lldb-types.h:84
SymbolContext.h
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::SymbolFileOnDemand::GetBackingSymbolFile
SymbolFile * GetBackingSymbolFile() override
SymbolFileOnDemand class overrides this to return the underlying backing SymbolFile implementation th...
Definition: SymbolFileOnDemand.h:58
lldb_private::TypeList
Definition: TypeList.h:20
ConstString.h
Flags.h
lldb_private::LanguageSet
A SmallBitVector that represents a set of source languages (lldb::LanguageType).
Definition: TypeSystem.h:40
lldb_private::SymbolFileOnDemand::GetModuleMutex
std::recursive_mutex & GetModuleMutex() const override
Symbols file subclasses should override this to return the Module that owns the TypeSystem that this ...
Definition: SymbolFileOnDemand.cpp:33
lldb_private::SymbolFileOnDemand::SetDebugInfoIndexWasSavedToCache
void SetDebugInfoIndexWasSavedToCache() override
Definition: SymbolFileOnDemand.h:217
lldb_private::Log
Definition: Log.h:115
lldb_private::SymbolFileOnDemand::SetLoadDebugInfoEnabled
void SetLoadDebugInfoEnabled() override
Specify debug info should be loaded.
Definition: SymbolFileOnDemand.cpp:561
lldb_private::SymbolFileOnDemand::GetNumCompileUnits
uint32_t GetNumCompileUnits() override
Definition: SymbolFileOnDemand.cpp:571
lldb_private::SymbolFileOnDemand::GetCompileUnitAtIndex
lldb::CompUnitSP GetCompileUnitAtIndex(uint32_t idx) override
Definition: SymbolFileOnDemand.cpp:577
lldb_private::GetLog
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
Definition: Log.h:308
lldb_private::SymbolFileOnDemand::GetTypes
void GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override
Definition: SymbolFileOnDemand.cpp:449
lldb_private::SymbolFileOnDemand::ParseDebugMacros
bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileOnDemand.cpp:93
lldb_private::SymbolFileOnDemand::m_sym_file_impl
std::unique_ptr< SymbolFile > m_sym_file_impl
Definition: SymbolFileOnDemand.h:231
lldb_private::FileSpec::GetFilename
ConstString & GetFilename()
Filename string get accessor.
Definition: FileSpec.cpp:340
LLDBLog.h
SymbolFile.h
lldb_private::ObjectFile
Definition: ObjectFile.h:60
lldb_private::SymbolFileOnDemand::CompleteType
bool CompleteType(lldb_private::CompilerType &compiler_type) override
Definition: SymbolFileOnDemand.cpp:211
lldb_private::SymbolFileOnDemand::ParseLineTable
bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileOnDemand.cpp:84