LLDB  mainline
SymbolFileDWARF.h
Go to the documentation of this file.
1 //===-- SymbolFileDWARF.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_SOURCE_PLUGINS_SYMBOLFILE_DWARF_SYMBOLFILEDWARF_H
10 #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_SYMBOLFILEDWARF_H
11 
12 #include <list>
13 #include <map>
14 #include <mutex>
15 #include <unordered_map>
16 #include <vector>
17 
18 #include "llvm/ADT/DenseMap.h"
19 #include "llvm/ADT/SetVector.h"
20 #include "llvm/Support/Threading.h"
21 
23 #include "lldb/Core/dwarf.h"
26 #include "lldb/Symbol/SymbolFile.h"
28 #include "lldb/Utility/Flags.h"
29 #include "lldb/Utility/RangeMap.h"
30 #include "lldb/lldb-private.h"
31 
32 #include "DWARFContext.h"
33 #include "DWARFDataExtractor.h"
34 #include "DWARFDefines.h"
35 #include "DWARFIndex.h"
36 #include "UniqueDWARFASTType.h"
37 
38 // Forward Declarations for this DWARF plugin
39 class DebugMapModule;
42 class DWARFCompileUnit;
43 class DWARFDebugAbbrev;
44 class DWARFDebugAranges;
45 class DWARFDebugInfo;
47 class DWARFDebugLine;
48 class DWARFDebugRanges;
49 class DWARFDeclContext;
50 class DWARFFormValue;
51 class DWARFTypeUnit;
53 class SymbolFileDWARFDwo;
54 class SymbolFileDWARFDwp;
55 
56 #define DIE_IS_BEING_PARSED ((lldb_private::Type *)1)
57 
59  public lldb_private::UserID {
60  /// LLVM RTTI support.
61  static char ID;
62 
63 public:
64  /// LLVM RTTI support.
65  /// \{
66  bool isA(const void *ClassID) const override {
67  return ClassID == &ID || SymbolFile::isA(ClassID);
68  }
69  static bool classof(const SymbolFile *obj) { return obj->isA(&ID); }
70  /// \}
71 
73  friend class SymbolFileDWARFDwo;
74  friend class DebugMapModule;
75  friend class DWARFCompileUnit;
76  friend class DWARFDIE;
77  friend class DWARFASTParserClang;
78 
79  // Static Functions
80  static void Initialize();
81 
82  static void Terminate();
83 
84  static void DebuggerInitialize(lldb_private::Debugger &debugger);
85 
87 
88  static const char *GetPluginDescriptionStatic();
89 
91  CreateInstance(lldb::ObjectFileSP objfile_sp);
92 
93  // Constructors and Destructors
94 
95  SymbolFileDWARF(lldb::ObjectFileSP objfile_sp,
96  lldb_private::SectionList *dwo_section_list);
97 
98  ~SymbolFileDWARF() override;
99 
100  uint32_t CalculateAbilities() override;
101 
102  void InitializeObject() override;
103 
104  // Compile Unit function calls
105 
107  ParseLanguage(lldb_private::CompileUnit &comp_unit) override;
108 
110  ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override;
111 
112  size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override;
113 
114  bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override;
115 
116  bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override;
117 
119  lldb_private::CompileUnit &, llvm::DenseSet<lldb_private::SymbolFile *> &,
120  llvm::function_ref<bool(lldb_private::Module &)>) override;
121 
123  lldb_private::FileSpecList &support_files) override;
124 
125  bool ParseIsOptimized(lldb_private::CompileUnit &comp_unit) override;
126 
127  size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override;
128 
130  const lldb_private::SymbolContext &sc,
131  std::vector<lldb_private::SourceModule> &imported_modules) override;
132 
133  size_t ParseBlocksRecursive(lldb_private::Function &func) override;
134 
135  size_t
137 
139  llvm::Optional<ArrayInfo> GetDynamicArrayInfoForUID(
140  lldb::user_id_t type_uid,
141  const lldb_private::ExecutionContext *exe_ctx) override;
142 
143  bool CompleteType(lldb_private::CompilerType &compiler_type) override;
144 
146  bool assert_not_being_parsed = true,
147  bool resolve_function_context = false);
148 
150 
153 
156 
157  void
159 
161  lldb::SymbolContextItem resolve_scope,
162  lldb_private::SymbolContext &sc) override;
163 
165  const lldb_private::SourceLocationSpec &src_location_spec,
166  lldb::SymbolContextItem resolve_scope,
167  lldb_private::SymbolContextList &sc_list) override;
168 
169  void
171  const lldb_private::CompilerDeclContext &parent_decl_ctx,
172  uint32_t max_matches,
173  lldb_private::VariableList &variables) override;
174 
176  uint32_t max_matches,
177  lldb_private::VariableList &variables) override;
178 
180  const lldb_private::CompilerDeclContext &parent_decl_ctx,
181  lldb::FunctionNameType name_type_mask,
182  bool include_inlines,
183  lldb_private::SymbolContextList &sc_list) override;
184 
186  bool include_inlines,
187  lldb_private::SymbolContextList &sc_list) override;
188 
190  const std::string &scope_qualified_name,
191  std::vector<lldb_private::ConstString> &mangled_names) override;
192 
193  void
195  const lldb_private::CompilerDeclContext &parent_decl_ctx,
196  uint32_t max_matches,
197  llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files,
198  lldb_private::TypeMap &types) override;
199 
200  void FindTypes(llvm::ArrayRef<lldb_private::CompilerContext> pattern,
201  lldb_private::LanguageSet languages,
202  llvm::DenseSet<SymbolFile *> &searched_symbol_files,
203  lldb_private::TypeMap &types) override;
204 
206  lldb::TypeClass type_mask,
207  lldb_private::TypeList &type_list) override;
208 
209  llvm::Expected<lldb_private::TypeSystem &>
210  GetTypeSystemForLanguage(lldb::LanguageType language) override;
211 
214  const lldb_private::CompilerDeclContext &parent_decl_ctx) override;
215 
216  void PreloadSymbols() override;
217 
218  std::recursive_mutex &GetModuleMutex() const override;
219 
220  // PluginInterface protocol
222 
224 
226 
228 
229  static bool SupportedVersion(uint16_t version);
230 
231  DWARFDIE
233 
234  bool
236 
239 
240  virtual void GetObjCMethods(lldb_private::ConstString class_name,
241  llvm::function_ref<bool(DWARFDIE die)> callback);
242 
244 
246 
247  static DWARFDIE GetParentSymbolContextDIE(const DWARFDIE &die);
248 
249  lldb::ModuleSP GetExternalModule(lldb_private::ConstString name);
250 
251  typedef std::map<lldb_private::ConstString, lldb::ModuleSP>
253 
254  /// Return the list of Clang modules imported by this SymbolFile.
257  }
258 
259  virtual DWARFDIE GetDIE(const DIERef &die_ref);
260 
262 
264  return GetUID(die.GetDIERef());
265  }
266 
267  lldb::user_id_t GetUID(const llvm::Optional<DIERef> &ref) {
268  return ref ? GetUID(*ref) : LLDB_INVALID_UID;
269  }
270 
272 
273  std::shared_ptr<SymbolFileDWARFDwo>
275  const DWARFDebugInfoEntry &cu_die);
276 
277  virtual llvm::Optional<uint32_t> GetDwoNum() { return llvm::None; }
278 
279  /// If this is a DWARF object with a single CU, return its DW_AT_dwo_id.
280  llvm::Optional<uint64_t> GetDWOId();
281 
282  static bool
284  const DWARFDIE &die);
285 
286  std::vector<std::unique_ptr<lldb_private::CallEdge>>
287  ParseCallEdgesInFunction(UserID func_id) override;
288 
289  void Dump(lldb_private::Stream &s) override;
290 
291  void DumpClangAST(lldb_private::Stream &s) override;
292 
294 
295  const std::shared_ptr<SymbolFileDWARFDwo> &GetDwpSymbolFile();
296 
297  lldb_private::FileSpec GetFile(DWARFUnit &unit, size_t file_idx);
298 
299  static llvm::Expected<lldb_private::TypeSystem &>
300  GetTypeSystem(DWARFUnit &unit);
301 
302  static DWARFASTParser *GetDWARFParser(DWARFUnit &unit);
303 
304  // CompilerDecl related functions
305 
306  static lldb_private::CompilerDecl GetDecl(const DWARFDIE &die);
307 
309 
312 
313  static DWARFDeclContext GetDWARFDeclContext(const DWARFDIE &die);
314 
315  static lldb::LanguageType LanguageTypeFromDWARF(uint64_t val);
316 
318  /// Same as GetLanguage() but reports all C++ versions as C++ (no version).
320 
321 protected:
322  typedef llvm::DenseMap<const DWARFDebugInfoEntry *, lldb_private::Type *>
324  typedef llvm::DenseMap<const DWARFDebugInfoEntry *, lldb::VariableSP>
326  typedef llvm::DenseMap<const DWARFDebugInfoEntry *,
329  typedef llvm::DenseMap<lldb::opaque_compiler_type_t, DIERef> ClangTypeToDIE;
330 
331  SymbolFileDWARF(const SymbolFileDWARF &) = delete;
332  const SymbolFileDWARF &operator=(const SymbolFileDWARF &) = delete;
333 
334  virtual void LoadSectionData(lldb::SectionType sect_type,
336 
338  const lldb_private::CompilerDeclContext &decl_ctx);
339 
341 
342  lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override;
343 
345 
346  lldb::CompUnitSP ParseCompileUnit(DWARFCompileUnit &dwarf_cu);
347 
348  virtual DWARFCompileUnit *
350 
352 
353  bool GetFunction(const DWARFDIE &die, lldb_private::SymbolContext &sc);
354 
356  const DWARFDIE &die);
357 
359  lldb_private::Block *parent_block,
360  const DWARFDIE &die,
361  lldb::addr_t subprogram_low_pc, uint32_t depth);
362 
363  size_t ParseTypes(const lldb_private::SymbolContext &sc, const DWARFDIE &die,
364  bool parse_siblings, bool parse_children);
365 
366  lldb::TypeSP ParseType(const lldb_private::SymbolContext &sc,
367  const DWARFDIE &die, bool *type_is_new);
368 
369  bool ParseSupportFiles(DWARFUnit &dwarf_cu, const lldb::ModuleSP &module,
370  lldb_private::FileSpecList &support_files);
371 
373  bool assert_not_being_parsed);
374 
375  lldb_private::Type *ResolveTypeUID(const DIERef &die_ref);
376 
377  lldb::VariableSP ParseVariableDIE(const lldb_private::SymbolContext &sc,
378  const DWARFDIE &die,
379  const lldb::addr_t func_low_pc);
380 
382  const DWARFDIE &orig_die,
383  const lldb::addr_t func_low_pc, bool parse_siblings,
384  bool parse_children,
385  lldb_private::VariableList *cc_variable_list = nullptr);
386 
387  bool ClassOrStructIsVirtual(const DWARFDIE &die);
388 
389  // Given a die_offset, figure out the symbol context representing that die.
390  bool ResolveFunction(const DWARFDIE &die, bool include_inlines,
392 
393  /// Resolve functions and (possibly) blocks for the given file address and a
394  /// compile unit. The compile unit comes from the sc argument and it must be
395  /// set. The results of the lookup (if any) are written back to the symbol
396  /// context.
397  void ResolveFunctionAndBlock(lldb::addr_t file_vm_addr, bool lookup_block,
399 
400  virtual lldb::TypeSP
402 
403  virtual lldb::TypeSP FindCompleteObjCDefinitionTypeForDIE(
404  const DWARFDIE &die, lldb_private::ConstString type_name,
405  bool must_be_implementation);
406 
409 
410  lldb::TypeSP GetTypeForDIE(const DWARFDIE &die,
411  bool resolve_function_context = false);
412 
413  void SetDebugMapModule(const lldb::ModuleSP &module_sp) {
414  m_debug_map_module_wp = module_sp;
415  }
416 
418 
419  DWARFDIE
420  FindBlockContainingSpecification(const DIERef &func_die_ref,
421  dw_offset_t spec_block_die_offset);
422 
423  DWARFDIE
425  dw_offset_t spec_block_die_offset);
426 
428 
429  bool DIEDeclContextsMatch(const DWARFDIE &die1, const DWARFDIE &die2);
430 
431  bool ClassContainsSelector(const DWARFDIE &class_die,
432  lldb_private::ConstString selector);
433 
434  /// Parse call site entries (DW_TAG_call_site), including any nested call site
435  /// parameters (DW_TAG_call_site_parameter).
436  std::vector<std::unique_ptr<lldb_private::CallEdge>>
437  CollectCallEdges(lldb::ModuleSP module, DWARFDIE function_die);
438 
439  /// If this symbol file is linked to by a debug map (see
440  /// SymbolFileDWARFDebugMap), and \p file_addr is a file address relative to
441  /// an object file, adjust \p file_addr so that it is relative to the main
442  /// binary. Returns the adjusted address, or \p file_addr if no adjustment is
443  /// needed, on success and LLDB_INVALID_ADDRESS otherwise.
445 
447 
448  typedef llvm::SetVector<lldb_private::Type *> TypeSet;
449 
450  void GetTypes(const DWARFDIE &die, dw_offset_t min_die_offset,
451  dw_offset_t max_die_offset, uint32_t type_mask,
452  TypeSet &type_set);
453 
457 
459 
461 
462  virtual DIEToTypePtr &GetDIEToType() { return m_die_to_type; }
463 
465 
468  }
469 
472  }
473 
475  llvm::Optional<uint32_t> GetDWARFUnitIndex(uint32_t cu_idx);
476 
477  struct DecodedUID {
480  };
481  llvm::Optional<DecodedUID> DecodeUID(lldb::user_id_t uid);
482 
483  void FindDwpSymbolFile();
484 
485  const lldb_private::FileSpecList &GetTypeUnitSupportFiles(DWARFTypeUnit &tu);
486 
487  lldb::ModuleWP m_debug_map_module_wp;
489 
490  llvm::once_flag m_dwp_symfile_once_flag;
491  std::shared_ptr<SymbolFileDWARFDwo> m_dwp_symfile;
492 
494 
495  llvm::once_flag m_info_once_flag;
496  std::unique_ptr<DWARFDebugInfo> m_info;
497 
498  std::unique_ptr<DWARFDebugAbbrev> m_abbr;
499  std::unique_ptr<GlobalVariableMap> m_global_aranges_up;
500 
501  typedef std::unordered_map<lldb::offset_t, lldb_private::DebugMacrosSP>
504 
506  std::unique_ptr<lldb_private::DWARFIndex> m_index;
509 
510  typedef std::set<DIERef> DIERefSet;
511  typedef llvm::StringMap<DIERefSet> NameToOffsetMap;
513  std::unique_ptr<DWARFDebugRanges> m_ranges;
519  llvm::DenseMap<dw_offset_t, lldb_private::FileSpecList>
521  std::vector<uint32_t> m_lldb_cu_to_dwarf_unit;
522 };
523 
524 #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_SYMBOLFILEDWARF_H
lldb_private::SymbolFile::SymbolFile
SymbolFile(lldb::ObjectFileSP objfile_sp)
Definition: SymbolFile.h:68
SymbolFileDWARF::GetCompUnitForDWARFCompUnit
lldb_private::CompileUnit * GetCompUnitForDWARFCompUnit(DWARFCompileUnit &dwarf_cu)
Definition: SymbolFileDWARF.cpp:1585
SymbolFileDWARF::CalculateNumCompileUnits
uint32_t CalculateNumCompileUnits() override
Definition: SymbolFileDWARF.cpp:808
SymbolFileDWARF::classof
static bool classof(const SymbolFile *obj)
Definition: SymbolFileDWARF.h:69
SymbolFileDWARF::DecodeUID
llvm::Optional< DecodedUID > DecodeUID(lldb::user_id_t uid)
Definition: SymbolFileDWARF.cpp:1349
SymbolFileDWARF::m_debug_macros_map
DebugMacrosMap m_debug_macros_map
Definition: SymbolFileDWARF.h:503
DIERef
Identifies a DWARF debug info entry within a given Module.
Definition: DIERef.h:26
lldb_private::SymbolFile
Definition: SymbolFile.h:37
SymbolFileDWARF::ExternalTypeModuleMap
std::map< lldb_private::ConstString, lldb::ModuleSP > ExternalTypeModuleMap
Definition: SymbolFileDWARF.h:252
SymbolFileDWARF::GetFunction
bool GetFunction(const DWARFDIE &die, lldb_private::SymbolContext &sc)
Definition: SymbolFileDWARF.cpp:1607
lldb_private::ExecutionContext
Definition: ExecutionContext.h:292
SymbolFileDWARF::DIEDeclContextsMatch
bool DIEDeclContextsMatch(const DWARFDIE &die1, const DWARFDIE &die2)
Definition: SymbolFileDWARF.cpp:2729
lldb_private::RegularExpression
Definition: RegularExpression.h:18
SymbolFileDWARF::m_abbr
std::unique_ptr< DWARFDebugAbbrev > m_abbr
Definition: SymbolFileDWARF.h:498
SymbolFileDWARF::m_external_type_modules
ExternalTypeModuleMap m_external_type_modules
Definition: SymbolFileDWARF.h:505
SymbolFileDWARF::GetFile
lldb_private::FileSpec GetFile(DWARFUnit &unit, size_t file_idx)
Definition: SymbolFileDWARF.cpp:980
DWARFBaseDIE::GetDIERef
llvm::Optional< DIERef > GetDIERef() const
Definition: DWARFBaseDIE.cpp:21
SymbolFileDWARF::ParseLineTable
bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileDWARF.cpp:1089
SymbolFileDWARF::ResolveTypeUID
lldb_private::Type * ResolveTypeUID(lldb::user_id_t type_uid) override
Definition: SymbolFileDWARF.cpp:1431
SymbolFileDWARF::DecodedUID::dwarf
SymbolFileDWARF & dwarf
Definition: SymbolFileDWARF.h:478
SymbolFileDWARF::ParseFunctions
size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileDWARF.cpp:895
lldb_private::Symbol
Definition: Symbol.h:20
SymbolFileDWARF::ParseType
lldb::TypeSP ParseType(const lldb_private::SymbolContext &sc, const DWARFDIE &die, bool *type_is_new)
Definition: SymbolFileDWARF.cpp:2930
DWARFDebugAranges
Definition: DWARFDebugAranges.h:16
lldb_private::SourceLocationSpec
Definition: SourceLocationSpec.h:27
SymbolFileDWARF::ParseVariableDIE
lldb::VariableSP ParseVariableDIE(const lldb_private::SymbolContext &sc, const DWARFDIE &die, const lldb::addr_t func_low_pc)
Definition: SymbolFileDWARF.cpp:3087
SymbolFileDWARF::GetForwardDeclDieToClangType
virtual DIEToClangType & GetForwardDeclDieToClangType()
Definition: SymbolFileDWARF.h:466
SymbolFileDWARF::GetParentSymbolContextDIE
static DWARFDIE GetParentSymbolContextDIE(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:412
SymbolFileDWARF::GetDWARFContext
lldb_private::DWARFContext & GetDWARFContext()
Definition: SymbolFileDWARF.h:293
SymbolFileDWARF::GetTypeSystem
static llvm::Expected< lldb_private::TypeSystem & > GetTypeSystem(DWARFUnit &unit)
Definition: SymbolFileDWARF.cpp:3875
SymbolFileDWARF::ParseLanguage
lldb::LanguageType ParseLanguage(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileDWARF.cpp:858
lldb_private::UserID
Definition: UserID.h:31
DWARFContext.h
DWARFDebugInfo
Definition: DWARFDebugInfo.h:26
DWARFTypeUnit
Definition: DWARFTypeUnit.h:15
SymbolFileDWARF::m_unique_ast_type_map
UniqueDWARFASTTypeMap m_unique_ast_type_map
Definition: SymbolFileDWARF.h:514
LLDB_INVALID_UID
#define LLDB_INVALID_UID
Definition: lldb-defines.h:92
SymbolFileDWARF::FindDwpSymbolFile
void FindDwpSymbolFile()
SymbolFileDWARF::DIERefSet
std::set< DIERef > DIERefSet
Definition: SymbolFileDWARF.h:510
SymbolFileDWARF::m_dwp_symfile_once_flag
llvm::once_flag m_dwp_symfile_once_flag
Definition: SymbolFileDWARF.h:490
SymbolFileDWARF::DIEToClangType
llvm::DenseMap< const DWARFDebugInfoEntry *, lldb::opaque_compiler_type_t > DIEToClangType
Definition: SymbolFileDWARF.h:328
SymbolFileDWARF::GetPluginNameStatic
static lldb_private::ConstString GetPluginNameStatic()
Definition: SymbolFileDWARF.cpp:282
SymbolFileDWARF::m_lldb_cu_to_dwarf_unit
std::vector< uint32_t > m_lldb_cu_to_dwarf_unit
Definition: SymbolFileDWARF.h:521
SymbolFileDWARF::GetTypeUnitSupportFiles
const lldb_private::FileSpecList & GetTypeUnitSupportFiles(DWARFTypeUnit &tu)
Definition: SymbolFileDWARF.cpp:992
SymbolFileDWARF::getExternalTypeModules
const ExternalTypeModuleMap & getExternalTypeModules() const
Return the list of Clang modules imported by this SymbolFile.
Definition: SymbolFileDWARF.h:255
lldb_private::XcodeSDK
An abstraction for Xcode-style SDKs that works like ArchSpec.
Definition: XcodeSDK.h:24
SymbolFileDWARF::ParseImportedModules
bool ParseImportedModules(const lldb_private::SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override
Definition: SymbolFileDWARF.cpp:1035
SymbolFileDWARF
Definition: SymbolFileDWARF.h:58
lldb::LanguageType
LanguageType
Programming language type.
Definition: lldb-enumerations.h:436
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:84
SymbolFileDWARF::GetDWARFCompileUnit
virtual DWARFCompileUnit * GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit)
Definition: SymbolFileDWARF.cpp:648
SymbolFileDWARF::Terminate
static void Terminate()
Definition: SymbolFileDWARF.cpp:276
lldb_private::SectionList
Definition: Section.h:34
SymbolFileDWARF::ID
static char ID
LLVM RTTI support.
Definition: SymbolFileDWARF.h:61
SymbolFileDWARF::m_forward_decl_clang_type_to_die
ClangTypeToDIE m_forward_decl_clang_type_to_die
Definition: SymbolFileDWARF.h:518
lldb::offset_t
uint64_t offset_t
Definition: lldb-types.h:87
SymbolFileDWARF::GetDebugRanges
DWARFDebugRanges * GetDebugRanges()
Definition: SymbolFileDWARF.cpp:661
SymbolFileDWARF::SetDebugMapModule
void SetDebugMapModule(const lldb::ModuleSP &module_sp)
Definition: SymbolFileDWARF.h:413
SymbolFileDWARF::GetDIEToVariable
virtual DIEToVariableSP & GetDIEToVariable()
Definition: SymbolFileDWARF.h:464
SymbolFileDWARF::isA
bool isA(const void *ClassID) const override
LLVM RTTI support.
Definition: SymbolFileDWARF.h:66
lldb_private::Stream
Definition: Stream.h:28
lldb_private::DWARFDataExtractor
Definition: DWARFDataExtractor.h:18
UniqueDWARFASTType.h
SymbolFileDWARF::GetDWARFUnitIndex
llvm::Optional< uint32_t > GetDWARFUnitIndex(uint32_t cu_idx)
Definition: SymbolFileDWARF.cpp:799
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
SymbolFileDWARF::GetUID
lldb::user_id_t GetUID(const llvm::Optional< DIERef > &ref)
Definition: SymbolFileDWARF.h:267
SymbolFileDWARF::FindNamespace
lldb_private::CompilerDeclContext FindNamespace(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx) override
Definition: SymbolFileDWARF.cpp:2494
lldb_private::LazyBool
LazyBool
Definition: lldb-private-enumerations.h:115
RangeMap.h
SymbolFileDWARF::Supports_DW_AT_APPLE_objc_complete_type
bool Supports_DW_AT_APPLE_objc_complete_type(DWARFUnit *cu)
Definition: SymbolFileDWARF.cpp:2641
DWARFDebugInfoEntry
DWARFDebugInfoEntry objects assume that they are living in one big vector and do pointer arithmetic o...
Definition: DWARFDebugInfoEntry.h:31
UniqueCStringMap.h
lldb_private::SymbolContext
Definition: SymbolContext.h:33
DWARFDefines.h
SymbolFileDWARF::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: SymbolFileDWARF.cpp:1443
lldb_private::DWARFContext
Definition: DWARFContext.h:20
lldb_private::VariableList
Definition: VariableList.h:18
SymbolFileDWARF::GetObjCMethods
virtual void GetObjCMethods(lldb_private::ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback)
Definition: SymbolFileDWARF.cpp:1602
SymbolFileDWARF::GetDebugMapSymfile
SymbolFileDWARFDebugMap * GetDebugMapSymfile()
Definition: SymbolFileDWARF.cpp:3838
SymbolFileDWARF::FindGlobalVariables
void FindGlobalVariables(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::VariableList &variables) override
Definition: SymbolFileDWARF.cpp:2082
lldb_private::CompileUnit
Definition: CompileUnit.h:38
DWARFDIE
Definition: DWARFDIE.h:16
SymbolFileDWARF::DebuggerInitialize
static void DebuggerInitialize(lldb_private::Debugger &debugger)
Definition: SymbolFileDWARF.cpp:265
SymbolFileDWARF::GetTypeSystemForLanguage
llvm::Expected< lldb_private::TypeSystem & > GetTypeSystemForLanguage(lldb::LanguageType language) override
Definition: SymbolFileDWARF.cpp:458
SymbolFileDWARF::GetMangledNamesForFunction
void GetMangledNamesForFunction(const std::string &scope_qualified_name, std::vector< lldb_private::ConstString > &mangled_names) override
Definition: SymbolFileDWARF.cpp:2350
SymbolFileDWARF::ParseCompileUnit
lldb::CompUnitSP ParseCompileUnit(DWARFCompileUnit &dwarf_cu)
Definition: SymbolFileDWARF.cpp:701
SymbolFileDWARF::GetDeclForUID
lldb_private::CompilerDecl GetDeclForUID(lldb::user_id_t uid) override
Definition: SymbolFileDWARF.cpp:1395
SymbolFileDWARF::ClassContainsSelector
bool ClassContainsSelector(const DWARFDIE &class_die, lldb_private::ConstString selector)
SymbolFileDWARF::ParseCompileUnitAtIndex
lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override
Definition: SymbolFileDWARF.cpp:814
lldb_private::FileSpec
Definition: FileSpec.h:56
DWARFCompileUnit
Definition: DWARFCompileUnit.h:15
SymbolFileDWARF::ResolveSymbolContext
uint32_t ResolveSymbolContext(const lldb_private::Address &so_addr, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContext &sc) override
SymbolFileDWARF::UpdateExternalModuleListIfNeeded
void UpdateExternalModuleListIfNeeded()
Definition: SymbolFileDWARF.cpp:1733
SymbolFileDWARF::CreateInstance
static lldb_private::SymbolFile * CreateInstance(lldb::ObjectFileSP objfile_sp)
Definition: SymbolFileDWARF.cpp:291
lldb_private::Function
Definition: Function.h:413
SymbolFileDWARF::ForEachExternalModule
bool ForEachExternalModule(lldb_private::CompileUnit &, llvm::DenseSet< lldb_private::SymbolFile * > &, llvm::function_ref< bool(lldb_private::Module &)>) override
Definition: SymbolFileDWARF.cpp:918
DWARFUnit
Definition: DWARFUnit.h:80
SymbolFileDWARF::SymbolFileDWARF
SymbolFileDWARF(lldb::ObjectFileSP objfile_sp, lldb_private::SectionList *dwo_section_list)
SymbolFileDWARF::GetForwardDeclClangTypeToDie
virtual ClangTypeToDIE & GetForwardDeclClangTypeToDie()
Definition: SymbolFileDWARF.h:470
SymbolFileDWARF::ResolveFunction
bool ResolveFunction(const DWARFDIE &die, bool include_inlines, lldb_private::SymbolContextList &sc_list)
Definition: SymbolFileDWARF.cpp:2197
SymbolFileDWARF::DebugMacrosMap
std::unordered_map< lldb::offset_t, lldb_private::DebugMacrosSP > DebugMacrosMap
Definition: SymbolFileDWARF.h:502
SymbolFileDWARF::GetPluginDescriptionStatic
static const char * GetPluginDescriptionStatic()
Definition: SymbolFileDWARF.cpp:287
SymbolFileDWARF::GetDwoSymbolFileForCompileUnit
std::shared_ptr< SymbolFileDWARFDwo > GetDwoSymbolFileForCompileUnit(DWARFUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die)
Definition: SymbolFileDWARF.cpp:1674
SymbolFileDWARF::DeclContextMatchesThisSymbolFile
bool DeclContextMatchesThisSymbolFile(const lldb_private::CompilerDeclContext &decl_ctx)
Definition: SymbolFileDWARF.cpp:2050
SymbolFileDWARF::GetGlobalAranges
GlobalVariableMap & GetGlobalAranges()
Definition: SymbolFileDWARF.cpp:1835
DebugMapModule
Definition: SymbolFileDWARFDebugMap.cpp:167
SymbolFileDWARF::m_forward_decl_die_to_clang_type
DIEToClangType m_forward_decl_die_to_clang_type
Definition: SymbolFileDWARF.h:517
SymbolFileDWARF::LoadSectionData
virtual void LoadSectionData(lldb::SectionType sect_type, lldb_private::DWARFDataExtractor &data)
Definition: SymbolFileDWARF.cpp:603
SymbolFileDWARF::GetLanguageFamily
static lldb::LanguageType GetLanguageFamily(DWARFUnit &unit)
Same as GetLanguage() but reports all C++ versions as C++ (no version).
Definition: SymbolFileDWARF.cpp:3934
SymbolFileDWARF::FindBlockContainingSpecification
DWARFDIE FindBlockContainingSpecification(const DIERef &func_die_ref, dw_offset_t spec_block_die_offset)
Definition: SymbolFileDWARF.cpp:3439
SymbolFileDWARF::ResolveFunctionAndBlock
void ResolveFunctionAndBlock(lldb::addr_t file_vm_addr, bool lookup_block, lldb_private::SymbolContext &sc)
Resolve functions and (possibly) blocks for the given file address and a compile unit.
Definition: SymbolFileDWARF.cpp:1879
lldb_private::DebugMacrosSP
std::shared_ptr< DebugMacros > DebugMacrosSP
Definition: DebugMacros.h:21
SymbolFileDWARF::GetModuleMutex
std::recursive_mutex & GetModuleMutex() const override
Symbols file subclasses should override this to return the Module that owns the TypeSystem that this ...
Definition: SymbolFileDWARF.cpp:2043
lldb_private::ConstString
Definition: ConstString.h:40
SymbolFileDWARF::FindDefinitionTypeForDWARFDeclContext
virtual lldb::TypeSP FindDefinitionTypeForDWARFDeclContext(const DWARFDeclContext &die_decl_ctx)
Definition: SymbolFileDWARF.cpp:2809
SymbolFileDWARFDebugMap
Definition: SymbolFileDWARFDebugMap.h:25
SymbolFileDWARF::GetDWARFDeclContext
static DWARFDeclContext GetDWARFDeclContext(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:3908
SymbolFileDWARF::DIEToTypePtr
llvm::DenseMap< const DWARFDebugInfoEntry *, lldb_private::Type * > DIEToTypePtr
Definition: SymbolFileDWARF.h:323
DWARFFormValue
Definition: DWARFFormValue.h:20
SymbolFileDWARF::GetDIEToType
virtual DIEToTypePtr & GetDIEToType()
Definition: SymbolFileDWARF.h:462
SymbolFileDWARF::GetDwpSymbolFile
const std::shared_ptr< SymbolFileDWARFDwo > & GetDwpSymbolFile()
Definition: SymbolFileDWARF.cpp:3849
SymbolFileDWARF::m_debug_map_symfile
SymbolFileDWARFDebugMap * m_debug_map_symfile
Definition: SymbolFileDWARF.h:488
SymbolFileDWARF::ParseTypes
size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileDWARF.cpp:3023
SymbolFileDWARF::Dump
void Dump(lldb_private::Stream &s) override
Definition: SymbolFileDWARF.cpp:3822
SymbolFileDWARF::SupportedVersion
static bool SupportedVersion(uint16_t version)
Definition: SymbolFileDWARF.cpp:517
SymbolFileDWARF::DIEInDeclContext
static bool DIEInDeclContext(const lldb_private::CompilerDeclContext &parent_decl_ctx, const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:2253
SymbolFileDWARF::GetTypeForDIE
lldb::TypeSP GetTypeForDIE(const DWARFDIE &die, bool resolve_function_context=false)
Definition: SymbolFileDWARF.cpp:2536
SymbolFileDWARF::m_dwp_symfile
std::shared_ptr< SymbolFileDWARFDwo > m_dwp_symfile
Definition: SymbolFileDWARF.h:491
SymbolFileDWARF::ClangTypeToDIE
llvm::DenseMap< lldb::opaque_compiler_type_t, DIERef > ClangTypeToDIE
Definition: SymbolFileDWARF.h:329
lldb_private::Debugger
Definition: Debugger.h:70
SymbolFileDWARF::GetDeclContextForUID
lldb_private::CompilerDeclContext GetDeclContextForUID(lldb::user_id_t uid) override
Definition: SymbolFileDWARF.cpp:1408
SymbolFileDWARF::NameToOffsetMap
llvm::StringMap< DIERefSet > NameToOffsetMap
Definition: SymbolFileDWARF.h:511
DWARFDebugRanges
Definition: DWARFDebugRanges.h:20
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition: Plugins/CMakeLists.txt:39
SymbolFileDWARF::GetExternalModule
lldb::ModuleSP GetExternalModule(lldb_private::ConstString name)
Definition: SymbolFileDWARF.cpp:1628
SymbolFileDWARF::GetObjCClassSymbol
lldb_private::Symbol * GetObjCClassSymbol(lldb_private::ConstString objc_class_name)
Definition: SymbolFileDWARF.cpp:2621
SymbolFileDWARF::GetNextUnparsedDWARFCompileUnit
DWARFUnit * GetNextUnparsedDWARFCompileUnit(DWARFUnit *prev_cu)
SymbolFileDWARF::ParseXcodeSDK
lldb_private::XcodeSDK ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override
Return the Xcode SDK comp_unit was compiled against.
Definition: SymbolFileDWARF.cpp:867
SymbolFileDWARF::CollectCallEdges
std::vector< std::unique_ptr< lldb_private::CallEdge > > CollectCallEdges(lldb::ModuleSP module, DWARFDIE function_die)
Parse call site entries (DW_TAG_call_site), including any nested call site parameters (DW_TAG_call_si...
Definition: SymbolFileDWARF.cpp:3646
lldb_private::TypeMap
Definition: TypeMap.h:20
UniqueDWARFASTTypeMap
Definition: UniqueDWARFASTType.h:71
SymbolFileDWARF::GetDWARFParser
static DWARFASTParser * GetDWARFParser(DWARFUnit &unit)
Definition: SymbolFileDWARF.cpp:3879
lldb_private::CompilerDeclContext
Represents a generic declaration context in a program.
Definition: CompilerDeclContext.h:30
SymbolFileDWARF::m_info_once_flag
llvm::once_flag m_info_once_flag
Definition: SymbolFileDWARF.h:495
SymbolFileDWARF::DecodedUID
Definition: SymbolFileDWARF.h:477
lldb_private::SymbolContextScope
Definition: SymbolContextScope.h:64
SymbolFileDWARF::ParseVariablesForContext
size_t ParseVariablesForContext(const lldb_private::SymbolContext &sc) override
Definition: SymbolFileDWARF.cpp:3039
SymbolFileDWARF::m_function_scope_qualified_name_map
NameToOffsetMap m_function_scope_qualified_name_map
Definition: SymbolFileDWARF.h:512
SymbolFileDWARF::ParseIsOptimized
bool ParseIsOptimized(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileDWARF.cpp:1027
lldb-private.h
SymbolFileDWARF::TypeSet
llvm::SetVector< lldb_private::Type * > TypeSet
Definition: SymbolFileDWARF.h:448
DWARFDebugAbbrev
Definition: DWARFDebugAbbrev.h:64
SymbolFileDWARF::m_context
lldb_private::DWARFContext m_context
Definition: SymbolFileDWARF.h:493
SymbolFileDWARF::ResolveType
lldb_private::Type * ResolveType(const DWARFDIE &die, bool assert_not_being_parsed=true, bool resolve_function_context=false)
Definition: SymbolFileDWARF.cpp:1564
SymbolFileDWARF::CompleteType
bool CompleteType(lldb_private::CompilerType &compiler_type) override
Definition: SymbolFileDWARF.cpp:1517
SymbolFileDWARF::DIEToVariableSP
llvm::DenseMap< const DWARFDebugInfoEntry *, lldb::VariableSP > DIEToVariableSP
Definition: SymbolFileDWARF.h:325
SymbolFileDWARF::FixupAddress
lldb::addr_t FixupAddress(lldb::addr_t file_addr)
If this symbol file is linked to by a debug map (see SymbolFileDWARFDebugMap), and file_addr is a fil...
Definition: SymbolFileDWARF.cpp:843
SymbolFileDWARF::m_index
std::unique_ptr< lldb_private::DWARFIndex > m_index
Definition: SymbolFileDWARF.h:506
DWARFASTParserClang
Definition: DWARFASTParserClang.h:37
SymbolFileDWARF::GetDecl
static lldb_private::CompilerDecl GetDecl(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:3889
DWARFAbbreviationDeclarationSet
Definition: DWARFDebugAbbrev.h:27
SymbolFileDWARF::LanguageTypeFromDWARF
static lldb::LanguageType LanguageTypeFromDWARF(uint64_t val)
Definition: SymbolFileDWARF.cpp:3917
SymbolFileDWARF::ParseFunction
lldb_private::Function * ParseFunction(lldb_private::CompileUnit &comp_unit, const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:824
SymbolFileDWARF::GetLanguage
static lldb::LanguageType GetLanguage(DWARFUnit &unit)
Definition: SymbolFileDWARF.cpp:3930
SymbolFileDWARF::m_global_aranges_up
std::unique_ptr< GlobalVariableMap > m_global_aranges_up
Definition: SymbolFileDWARF.h:499
dwarf.h
SymbolFileDWARF::ParseDebugMacros
bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFileDWARF.cpp:1166
lldb_private::Block
Definition: Block.h:41
SymbolFileDWARF::GetPluginName
lldb_private::ConstString GetPluginName() override
Definition: SymbolFileDWARF.cpp:3820
uint32_t
DWARFASTParser
Definition: DWARFASTParser.h:25
SymbolFileDWARF::GetTypeList
lldb_private::TypeList & GetTypeList() override
Definition: SymbolFileDWARF.cpp:296
lldb::SectionType
SectionType
Definition: lldb-enumerations.h:646
SymbolFileDWARF::m_fetched_external_modules
bool m_fetched_external_modules
Definition: SymbolFileDWARF.h:507
SymbolFileDWARF::operator=
const SymbolFileDWARF & operator=(const SymbolFileDWARF &)=delete
SymbolFileDWARF::m_debug_map_module_wp
lldb::ModuleWP m_debug_map_module_wp
Definition: SymbolFileDWARF.h:487
SymbolFileDWARF::Initialize
static void Initialize()
Definition: SymbolFileDWARF.cpp:257
lldb_private::Address
Definition: Address.h:59
SymbolFileDWARF::m_ranges
std::unique_ptr< DWARFDebugRanges > m_ranges
Definition: SymbolFileDWARF.h:513
SymbolFileDWARF::GetDeclContext
static lldb_private::CompilerDeclContext GetDeclContext(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:3895
SymbolFileDWARF::InitializeObject
void InitializeObject() override
Initialize the SymbolFile object.
Definition: SymbolFileDWARF.cpp:470
SymbolFileDWARF::m_supports_DW_AT_APPLE_objc_complete_type
lldb_private::LazyBool m_supports_DW_AT_APPLE_objc_complete_type
Definition: SymbolFileDWARF.h:508
lldb_private::RangeDataVector
Definition: RangeMap.h:398
SymbolFileDWARF::GetContainingDeclContext
static lldb_private::CompilerDeclContext GetContainingDeclContext(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:3902
lldb_private::Type
Definition: Type.h:66
SymbolFileDWARFDwo
Definition: SymbolFileDWARFDwo.h:14
SymbolFileDWARF::m_type_unit_support_files
llvm::DenseMap< dw_offset_t, lldb_private::FileSpecList > m_type_unit_support_files
Definition: SymbolFileDWARF.h:520
SymbolFileDWARF::m_info
std::unique_ptr< DWARFDebugInfo > m_info
Definition: SymbolFileDWARF.h:496
SymbolFileDWARF::ParseDeclsForContext
void ParseDeclsForContext(lldb_private::CompilerDeclContext decl_ctx) override
Definition: SymbolFileDWARF.cpp:1331
uint16_t
SymbolFileDWARF::DebugInfo
DWARFDebugInfo & DebugInfo()
Definition: SymbolFileDWARF.cpp:639
DWARFAbbreviationDeclaration
Definition: DWARFAbbreviationDeclaration.h:17
lldb_private::CompilerType
Generic representation of a type in a programming language.
Definition: CompilerType.h:33
SymbolFileDWARF::m_die_to_variable_sp
DIEToVariableSP m_die_to_variable_sp
Definition: SymbolFileDWARF.h:516
lldb::user_id_t
uint64_t user_id_t
Definition: lldb-types.h:84
SymbolFileDWARF::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
SymbolContext.h
SymbolFileDWARF::m_die_to_type
DIEToTypePtr m_die_to_type
Definition: SymbolFileDWARF.h:515
SymbolFileDWARF::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
SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE
virtual lldb::TypeSP FindCompleteObjCDefinitionTypeForDIE(const DWARFDIE &die, lldb_private::ConstString type_name, bool must_be_implementation)
Definition: SymbolFileDWARF.cpp:2667
SymbolFileDWARF::ParseBlocksRecursive
size_t ParseBlocksRecursive(lldb_private::Function &func) override
Definition: SymbolFileDWARF.cpp:3002
DWARFDeclContext
Definition: DWARFDeclContext.h:23
SymbolFileDWARF::GetUniqueDWARFASTTypeMap
virtual UniqueDWARFASTTypeMap & GetUniqueDWARFASTTypeMap()
Definition: SymbolFileDWARF.cpp:449
SymbolFileDWARF::ParseVariables
size_t ParseVariables(const lldb_private::SymbolContext &sc, const DWARFDIE &orig_die, const lldb::addr_t func_low_pc, bool parse_siblings, bool parse_children, lldb_private::VariableList *cc_variable_list=nullptr)
Definition: SymbolFileDWARF.cpp:3482
lldb_private::TypeList
Definition: TypeList.h:20
SymbolFileDWARF::DebugAbbrev
DWARFDebugAbbrev * DebugAbbrev()
Definition: SymbolFileDWARF.cpp:618
SymbolFileDWARF::DecodedUID::ref
DIERef ref
Definition: SymbolFileDWARF.h:479
SymbolFileDWARF::GetDwoNum
virtual llvm::Optional< uint32_t > GetDwoNum()
Definition: SymbolFileDWARF.h:277
ConstString.h
Flags.h
SymbolFileDWARF::GetDWOId
llvm::Optional< uint64_t > GetDWOId()
If this is a DWARF object with a single CU, return its DW_AT_dwo_id.
Definition: SymbolFileDWARF.cpp:1662
lldb_private::LanguageSet
A SmallBitVector that represents a set of source languages (lldb::LanguageType).
Definition: TypeSystem.h:40
DebugMacros.h
SymbolFileDWARF::PreloadSymbols
void PreloadSymbols() override
Definition: SymbolFileDWARF.cpp:2038
SymbolFileDWARF::GetDeclContextContainingUID
lldb_private::CompilerDeclContext GetDeclContextContainingUID(lldb::user_id_t uid) override
Definition: SymbolFileDWARF.cpp:1421
SymbolFileDWARF::ParseSupportFiles
bool ParseSupportFiles(lldb_private::CompileUnit &comp_unit, lldb_private::FileSpecList &support_files) override
SymbolFileDWARF::GlobalVariableMap
lldb_private::RangeDataVector< lldb::addr_t, lldb::addr_t, lldb_private::Variable * > GlobalVariableMap
Definition: SymbolFileDWARF.h:456
lldb_private::Variable
Definition: Variable.h:25
lldb_private::UserID::UserID
UserID(lldb::user_id_t uid=LLDB_INVALID_UID)
Construct with optional user ID.
Definition: UserID.h:33
SymbolFileDWARF::GetDIE
virtual DWARFDIE GetDIE(const DIERef &die_ref)
Definition: SymbolFileDWARF.cpp:1638
SymbolFileDWARF::~SymbolFileDWARF
~SymbolFileDWARF() override
SymbolFileDWARF::GetDeclContextDIEContainingDIE
DWARFDIE GetDeclContextDIEContainingDIE(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:2570
SymbolFileDWARF::HasForwardDeclForClangType
bool HasForwardDeclForClangType(const lldb_private::CompilerType &compiler_type)
Definition: SymbolFileDWARF.cpp:1498
SymbolFileDWARF::ParseCallEdgesInFunction
std::vector< std::unique_ptr< lldb_private::CallEdge > > ParseCallEdgesInFunction(UserID func_id) override
Definition: SymbolFileDWARF.cpp:3807
SymbolFileDWARF::GetTypes
void GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override
SymbolFile.h
lldb::opaque_compiler_type_t
void * opaque_compiler_type_t
Definition: lldb-types.h:90
DWARFIndex.h
SymbolFileDWARF::DumpClangAST
void DumpClangAST(lldb_private::Stream &s) override
Definition: SymbolFileDWARF.cpp:3827
SymbolFileDWARF::ClassOrStructIsVirtual
bool ClassOrStructIsVirtual(const DWARFDIE &die)
Definition: SymbolFileDWARF.cpp:1309
SymbolFileDWARF::BuildCuTranslationTable
void BuildCuTranslationTable()
Definition: SymbolFileDWARF.cpp:782
DWARFBaseDIE
Definition: DWARFBaseDIE.h:25
SymbolFileDWARF::CalculateAbilities
uint32_t CalculateAbilities() override
Definition: SymbolFileDWARF.cpp:521
SymbolFileDWARF::GetUID
lldb::user_id_t GetUID(const DWARFBaseDIE &die)
Definition: SymbolFileDWARF.h:263
DWARFDataExtractor.h