LLDB  mainline
AppleObjCRuntimeV2.h
Go to the documentation of this file.
1 //===-- AppleObjCRuntimeV2.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_LANGUAGERUNTIME_OBJC_APPLEOBJCRUNTIME_APPLEOBJCRUNTIMEV2_H
10 #define LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_OBJC_APPLEOBJCRUNTIME_APPLEOBJCRUNTIMEV2_H
11 
12 #include <map>
13 #include <memory>
14 #include <mutex>
15 
16 #include "AppleObjCRuntime.h"
17 #include "lldb/lldb-private.h"
18 
20 
21 class RemoteNXMapTable;
22 
23 namespace lldb_private {
24 
26 public:
27  ~AppleObjCRuntimeV2() override = default;
28 
29  static void Initialize();
30 
31  static void Terminate();
32 
34  CreateInstance(Process *process, lldb::LanguageType language);
35 
37 
38  static char ID;
39 
40  bool isA(const void *ClassID) const override {
41  return ClassID == &ID || AppleObjCRuntime::isA(ClassID);
42  }
43 
44  static bool classof(const LanguageRuntime *runtime) {
45  return runtime->isA(&ID);
46  }
47 
49  lldb::DynamicValueType use_dynamic,
50  TypeAndOrName &class_type_or_name,
51  Address &address,
52  Value::ValueType &value_type) override;
53 
54  llvm::Expected<std::unique_ptr<UtilityFunction>>
55  CreateObjectChecker(std::string name, ExecutionContext &exe_ctx) override;
56 
57  llvm::StringRef GetPluginName() override {
59  }
60 
63  }
64 
65  size_t GetByteOffsetForIvar(CompilerType &parent_qual_type,
66  const char *ivar_name) override;
67 
68  void UpdateISAToDescriptorMapIfNeeded() override;
69 
71 
73 
74  DeclVendor *GetDeclVendor() override;
75 
77 
79 
80  bool IsTaggedPointer(lldb::addr_t ptr) override;
81 
82  TaggedPointerVendor *GetTaggedPointerVendor() override {
83  return m_tagged_pointer_vendor_up.get();
84  }
85 
87 
88  /// Returns the base address for relative method list selector strings.
91  }
92 
93  void SetRelativeSelectorBaseAddr(lldb::addr_t relative_selector_base) {
94  m_relative_selector_base = relative_selector_base;
95  }
96 
98  lldb::addr_t &cf_false) override;
99 
100  // none of these are valid ISAs - we use them to infer the type
101  // of tagged pointers - if we have something meaningful to say
102  // we report an actual type - otherwise, we just say tagged
103  // there is no connection between the values here and the tagged pointers map
109  5;
111 
112 protected:
113  lldb::BreakpointResolverSP
114  CreateExceptionResolver(const lldb::BreakpointSP &bkpt, bool catch_bp,
115  bool throw_bp) override;
116 
117 private:
119  public:
121 
122  bool NeedsUpdate(Process *process, AppleObjCRuntimeV2 *runtime,
123  RemoteNXMapTable &hash_table);
124 
125  void UpdateSignature(const RemoteNXMapTable &hash_table);
126 
127  protected:
131  };
132 
134  public:
135  static NonPointerISACache *
137  const lldb::ModuleSP &objc_module_sp);
138 
140 
141  private:
143  const lldb::ModuleSP &objc_module_sp,
144  uint64_t objc_debug_isa_class_mask,
145  uint64_t objc_debug_isa_magic_mask,
146  uint64_t objc_debug_isa_magic_value,
147  uint64_t objc_debug_indexed_isa_magic_mask,
148  uint64_t objc_debug_indexed_isa_magic_value,
149  uint64_t objc_debug_indexed_isa_index_mask,
150  uint64_t objc_debug_indexed_isa_index_shift,
151  lldb::addr_t objc_indexed_classes);
152 
153  bool EvaluateNonPointerISA(ObjCISA isa, ObjCISA &ret_isa);
154 
156  std::map<ObjCISA, ObjCLanguageRuntime::ClassDescriptorSP> m_cache;
157  lldb::ModuleWP m_objc_module_wp;
161 
167 
168  std::vector<lldb::addr_t> m_indexed_isa_cache;
169 
170  friend class AppleObjCRuntimeV2;
171 
172  NonPointerISACache(const NonPointerISACache &) = delete;
173  const NonPointerISACache &operator=(const NonPointerISACache &) = delete;
174  };
175 
178  public:
179  ~TaggedPointerVendorV2() override = default;
180 
181  static TaggedPointerVendorV2 *
183  const lldb::ModuleSP &objc_module_sp);
184 
185  protected:
187 
189  : TaggedPointerVendor(), m_runtime(runtime) {}
190 
191  private:
193  const TaggedPointerVendorV2 &
194  operator=(const TaggedPointerVendorV2 &) = delete;
195  };
196 
198  public:
199  bool IsPossibleTaggedPointer(lldb::addr_t ptr) override;
200 
202  GetClassDescriptor(lldb::addr_t ptr) override;
203 
204  protected:
206  AppleObjCRuntimeV2 &runtime, uint64_t objc_debug_taggedpointer_mask,
207  uint32_t objc_debug_taggedpointer_slot_shift,
208  uint32_t objc_debug_taggedpointer_slot_mask,
209  uint32_t objc_debug_taggedpointer_payload_lshift,
210  uint32_t objc_debug_taggedpointer_payload_rshift,
211  lldb::addr_t objc_debug_taggedpointer_classes);
212 
213  typedef std::map<uint8_t, ObjCLanguageRuntime::ClassDescriptorSP> Cache;
214  typedef Cache::iterator CacheIterator;
222 
224 
226  const TaggedPointerVendorRuntimeAssisted &) = delete;
229  };
230 
233  public:
235  GetClassDescriptor(lldb::addr_t ptr) override;
236 
237  protected:
239  AppleObjCRuntimeV2 &runtime, uint64_t objc_debug_taggedpointer_mask,
240  uint64_t objc_debug_taggedpointer_ext_mask,
241  uint32_t objc_debug_taggedpointer_slot_shift,
242  uint32_t objc_debug_taggedpointer_ext_slot_shift,
243  uint32_t objc_debug_taggedpointer_slot_mask,
244  uint32_t objc_debug_taggedpointer_ext_slot_mask,
245  uint32_t objc_debug_taggedpointer_payload_lshift,
246  uint32_t objc_debug_taggedpointer_payload_rshift,
247  uint32_t objc_debug_taggedpointer_ext_payload_lshift,
248  uint32_t objc_debug_taggedpointer_ext_payload_rshift,
249  lldb::addr_t objc_debug_taggedpointer_classes,
250  lldb::addr_t objc_debug_taggedpointer_ext_classes);
251 
253 
254  typedef std::map<uint8_t, ObjCLanguageRuntime::ClassDescriptorSP> Cache;
255  typedef Cache::iterator CacheIterator;
263 
265 
268  operator=(const TaggedPointerVendorExtended &) = delete;
269  };
270 
272  public:
273  bool IsPossibleTaggedPointer(lldb::addr_t ptr) override;
274 
276  GetClassDescriptor(lldb::addr_t ptr) override;
277 
278  protected:
280  : TaggedPointerVendorV2(runtime) {}
281 
283 
286  operator=(const TaggedPointerVendorLegacy &) = delete;
287  };
288 
292 
294  m_update_ran = ran;
295  m_num_found = found;
296  }
297 
298  static DescriptorMapUpdateResult Fail() { return {false, 0}; }
299 
301  return {true, found};
302  }
303  };
304 
305  /// Abstraction to read the Objective-C class info.
307  public:
309  std::mutex &GetMutex() { return m_mutex; }
310 
311  protected:
312  /// The lifetime of this object is tied to that of the runtime.
314  std::mutex m_mutex;
315  };
316 
317  /// We can read the class info from the Objective-C runtime using
318  /// gdb_objc_realized_classes or objc_copyRealizedClassList. The latter is
319  /// preferred because it includes lazily named classes, but it's not always
320  /// available or safe to call.
321  ///
322  /// We potentially need both for the same process, because we may need to use
323  /// gdb_objc_realized_classes until dyld is initialized and then switch over
324  /// to objc_copyRealizedClassList for lazily named classes.
326  public:
328  : ClassInfoExtractor(runtime) {}
329 
332 
333  private:
335 
336  /// Compute which helper to use. Prefer objc_copyRealizedClassList if it's
337  /// available and it's safe to call (i.e. dyld is fully initialized). Use
338  /// gdb_objc_realized_classes otherwise.
339  Helper ComputeHelper() const;
340 
342  Helper helper);
344 
345  std::unique_ptr<UtilityFunction>
347  std::string name);
348 
349  /// Helper to read class info using the gdb_objc_realized_classes.
351  std::unique_ptr<UtilityFunction> utility_function;
353  };
354 
355  /// Helper to read class info using objc_copyRealizedClassList.
357  std::unique_ptr<UtilityFunction> utility_function;
359  };
360 
363  };
364 
365  /// Abstraction to read the Objective-C class info from the shared cache.
367  public:
369  : ClassInfoExtractor(runtime) {}
370 
372 
373  private:
375 
376  std::unique_ptr<UtilityFunction>
378 
379  std::unique_ptr<UtilityFunction> m_utility_function;
381  };
382 
383  AppleObjCRuntimeV2(Process *process, const lldb::ModuleSP &objc_module_sp);
384 
386 
388 
389  /// Update the generation count of realized classes. This is not an exact
390  /// count but rather a value that is incremented when new classes are realized
391  /// or destroyed. Unlike the count in gdb_objc_realized_classes, it will
392  /// change when lazily named classes get realized.
394 
396  uint32_t num_class_infos);
397 
401  };
402 
404 
407 
409 
410  bool HasSymbol(ConstString Name);
411 
416  return m_non_pointer_isa_cache_up.get();
417  }
418 
419  friend class ClassDescriptorV2;
420 
421  lldb::ModuleSP m_objc_module_sp;
422 
425 
426  std::unique_ptr<DeclVendor> m_decl_vendor_up;
434  std::unique_ptr<NonPointerISACache> m_non_pointer_isa_cache_up;
435  std::unique_ptr<TaggedPointerVendor> m_tagged_pointer_vendor_up;
438  llvm::Optional<std::pair<lldb::addr_t, lldb::addr_t>> m_CFBoolean_values;
440 };
441 
442 } // namespace lldb_private
443 
444 #endif // LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_OBJC_APPLEOBJCRUNTIME_APPLEOBJCRUNTIMEV2_H
lldb_private::AppleObjCRuntime::isA
bool isA(const void *ClassID) const override
Definition: AppleObjCRuntime.h:38
lldb_private::ExecutionContext
Definition: ExecutionContext.h:292
lldb_private::AppleObjCRuntimeV2::GetClassDescriptorFromISA
ClassDescriptorSP GetClassDescriptorFromISA(ObjCISA isa) override
Definition: AppleObjCRuntimeV2.cpp:1409
lldb_private::AppleObjCRuntimeV2::HashTableSignature::m_buckets_ptr
lldb::addr_t m_buckets_ptr
Definition: AppleObjCRuntimeV2.h:130
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::NonPointerISACache
NonPointerISACache(AppleObjCRuntimeV2 &runtime, const lldb::ModuleSP &objc_module_sp, uint64_t objc_debug_isa_class_mask, uint64_t objc_debug_isa_magic_mask, uint64_t objc_debug_isa_magic_value, uint64_t objc_debug_indexed_isa_magic_mask, uint64_t objc_debug_indexed_isa_magic_value, uint64_t objc_debug_indexed_isa_index_mask, uint64_t objc_debug_indexed_isa_index_shift, lldb::addr_t objc_indexed_classes)
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunctionImpl
std::unique_ptr< UtilityFunction > GetClassInfoUtilityFunctionImpl(ExecutionContext &exe_ctx)
Definition: AppleObjCRuntimeV2.cpp:1630
lldb_private::AppleObjCRuntimeV2::GetTaggedPointerObfuscator
lldb::addr_t GetTaggedPointerObfuscator()
Definition: AppleObjCRuntimeV2.cpp:1463
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::operator=
const TaggedPointerVendorLegacy & operator=(const TaggedPointerVendorLegacy &)=delete
lldb_private::ObjCLanguageRuntime::TaggedPointerVendor
Definition: ObjCLanguageRuntime.h:184
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_runtime
AppleObjCRuntimeV2 & m_runtime
Definition: AppleObjCRuntimeV2.h:155
lldb_private::AppleObjCRuntimeV2::GetTaggedPointerVendor
TaggedPointerVendor * GetTaggedPointerVendor() override
Definition: AppleObjCRuntimeV2.h:82
lldb_private::AppleObjCRuntimeV2::~AppleObjCRuntimeV2
~AppleObjCRuntimeV2() override=default
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::DynamicClassInfoExtractor
DynamicClassInfoExtractor(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:327
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunctionImpl
std::unique_ptr< UtilityFunction > GetClassInfoUtilityFunctionImpl(ExecutionContext &exe_ctx, std::string code, std::string name)
Definition: AppleObjCRuntimeV2.cpp:1524
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::GetMutex
std::mutex & GetMutex()
Definition: AppleObjCRuntimeV2.h:309
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_payload_rshift
uint32_t m_objc_debug_taggedpointer_ext_payload_rshift
Definition: AppleObjCRuntimeV2.h:261
lldb_private::AppleObjCRuntimeV2::GetPointerISA
ObjCISA GetPointerISA(ObjCISA isa)
Definition: AppleObjCRuntimeV2.cpp:2956
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::operator=
const TaggedPointerVendorRuntimeAssisted & operator=(const TaggedPointerVendorRuntimeAssisted &)=delete
lldb_private::AppleObjCRuntimeV2::GetClassDescriptor
ClassDescriptorSP GetClassDescriptor(ValueObject &in_value) override
Definition: AppleObjCRuntimeV2.cpp:1419
lldb_private::AppleObjCRuntimeV2::SharedCacheWarningReason
SharedCacheWarningReason
Definition: AppleObjCRuntimeV2.h:398
lldb_private::AppleObjCRuntimeV2::HashTableSignature::m_num_buckets
uint32_t m_num_buckets
Definition: AppleObjCRuntimeV2.h:129
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult
Definition: AppleObjCRuntimeV2.h:289
lldb_private::AppleObjCRuntimeV2::GetRuntimeVersion
ObjCRuntimeVersions GetRuntimeVersion() const override
Definition: AppleObjCRuntimeV2.h:61
lldb_private::ObjCLanguageRuntime::ClassDescriptorSP
std::shared_ptr< ClassDescriptor > ClassDescriptorSP
Definition: ObjCLanguageRuntime.h:44
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::UpdateISAToDescriptorMap
DescriptorMapUpdateResult UpdateISAToDescriptorMap(RemoteNXMapTable &hash_table)
Definition: AppleObjCRuntimeV2.cpp:1726
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::CacheIterator
Cache::iterator CacheIterator
Definition: AppleObjCRuntimeV2.h:214
lldb_private::AppleObjCRuntimeV2::GetValuesForGlobalCFBooleans
void GetValuesForGlobalCFBooleans(lldb::addr_t &cf_true, lldb::addr_t &cf_false) override
Definition: AppleObjCRuntimeV2.cpp:3009
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2591
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::CreateInstance
static NonPointerISACache * CreateInstance(AppleObjCRuntimeV2 &runtime, const lldb::ModuleSP &objc_module_sp)
Definition: AppleObjCRuntimeV2.cpp:2410
lldb_private::AppleObjCRuntimeV2::m_tagged_pointer_obfuscator
lldb::addr_t m_tagged_pointer_obfuscator
Definition: AppleObjCRuntimeV2.h:427
lldb_private::AppleObjCRuntimeV2::GetSharedCacheReadOnlyAddress
lldb::addr_t GetSharedCacheReadOnlyAddress()
Definition: AppleObjCRuntimeV2.cpp:2148
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::objc_copyRealizedClassList_helper::utility_function
std::unique_ptr< UtilityFunction > utility_function
Definition: AppleObjCRuntimeV2.h:357
lldb_private::AppleObjCRuntimeV2::m_objc_module_sp
lldb::ModuleSP m_objc_module_sp
Definition: AppleObjCRuntimeV2.h:421
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_isa_magic_value
uint64_t m_objc_debug_isa_magic_value
Definition: AppleObjCRuntimeV2.h:160
lldb_private::AppleObjCRuntimeV2::IsTaggedPointer
bool IsTaggedPointer(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:1188
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::m_args
lldb::addr_t m_args
Definition: AppleObjCRuntimeV2.h:380
lldb_private::Process
Definition: Process.h:341
lldb_private::ObjCLanguageRuntime::EncodingToTypeSP
std::shared_ptr< EncodingToType > EncodingToTypeSP
Definition: ObjCLanguageRuntime.h:220
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_mask
uint64_t m_objc_debug_taggedpointer_ext_mask
Definition: AppleObjCRuntimeV2.h:257
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Success
static DescriptorMapUpdateResult Success(uint32_t found)
Definition: AppleObjCRuntimeV2.h:300
lldb_private::AppleObjCRuntimeV2::HashTableSignature::UpdateSignature
void UpdateSignature(const RemoteNXMapTable &hash_table)
Definition: AppleObjCRuntimeV2.cpp:1382
lldb_private::AppleObjCRuntimeV2
Definition: AppleObjCRuntimeV2.h:25
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_slot_shift
uint32_t m_objc_debug_taggedpointer_ext_slot_shift
Definition: AppleObjCRuntimeV2.h:258
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_mask
uint64_t m_objc_debug_taggedpointer_mask
Definition: AppleObjCRuntimeV2.h:216
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::gdb_objc_realized_classes
@ gdb_objc_realized_classes
Definition: AppleObjCRuntimeV2.h:334
lldb::LanguageType
LanguageType
Programming language type.
Definition: lldb-enumerations.h:436
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::operator=
const TaggedPointerVendorV2 & operator=(const TaggedPointerVendorV2 &)=delete
lldb_private::AppleObjCRuntimeV2::m_isa_hash_table_ptr
lldb::addr_t m_isa_hash_table_ptr
Definition: AppleObjCRuntimeV2.h:428
lldb_private::AppleObjCRuntimeV2::CreateInstance
static lldb_private::LanguageRuntime * CreateInstance(Process *process, lldb::LanguageType language)
Definition: AppleObjCRuntimeV2.cpp:733
RemoteNXMapTable
Definition: AppleObjCRuntimeV2.cpp:1194
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunction
UtilityFunction * GetClassInfoUtilityFunction(ExecutionContext &exe_ctx, Helper helper)
Definition: AppleObjCRuntimeV2.cpp:1579
lldb_private::ObjCLanguageRuntime::ObjCRuntimeVersions::eAppleObjC_V2
@ eAppleObjC_V2
lldb_private::AppleObjCRuntimeV2::m_shared_cache_class_info_extractor
SharedCacheClassInfoExtractor m_shared_cache_class_info_extractor
Definition: AppleObjCRuntimeV2.h:424
lldb_private::LanguageRuntime::isA
virtual bool isA(const void *ClassID) const
Definition: LanguageRuntime.h:173
lldb_private::AppleObjCRuntimeV2::SetRelativeSelectorBaseAddr
void SetRelativeSelectorBaseAddr(lldb::addr_t relative_selector_base)
Definition: AppleObjCRuntimeV2.h:93
lldb_private::AppleObjCRuntimeV2::Terminate
static void Terminate()
Definition: AppleObjCRuntimeV2.cpp:1060
lldb_private::AppleObjCRuntimeV2::m_CFBoolean_values
llvm::Optional< std::pair< lldb::addr_t, lldb::addr_t > > m_CFBoolean_values
Definition: AppleObjCRuntimeV2.h:438
lldb_private::AppleObjCRuntimeV2::HashTableSignature
Definition: AppleObjCRuntimeV2.h:118
lldb_private::AppleObjCRuntimeV2::LookupRuntimeSymbol
lldb::addr_t LookupRuntimeSymbol(ConstString name) override
Definition: AppleObjCRuntimeV2.cpp:2350
lldb_private::AppleObjCRuntimeV2::m_non_pointer_isa_cache_up
std::unique_ptr< NonPointerISACache > m_non_pointer_isa_cache_up
Definition: AppleObjCRuntimeV2.h:434
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA
Definition: AppleObjCRuntimeV2.h:104
lldb_private::AppleObjCRuntimeV2::m_has_object_getClass
bool m_has_object_getClass
Definition: AppleObjCRuntimeV2.h:431
lldb_private::AppleObjCRuntimeV2::NonPointerISACache
Definition: AppleObjCRuntimeV2.h:133
lldb_private::AppleObjCRuntimeV2::SharedCacheWarningReason::eNotEnoughClassesRead
@ eNotEnoughClassesRead
lldb_private::AppleObjCRuntimeV2::m_encoding_to_type_sp
EncodingToTypeSP m_encoding_to_type_sp
Definition: AppleObjCRuntimeV2.h:436
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::m_mutex
std::mutex m_mutex
Definition: AppleObjCRuntimeV2.h:314
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_classes
lldb::addr_t m_objc_debug_taggedpointer_classes
Definition: AppleObjCRuntimeV2.h:221
lldb_private::AppleObjCRuntimeV2::m_relative_selector_base
lldb::addr_t m_relative_selector_base
Definition: AppleObjCRuntimeV2.h:429
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSNumber
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSNumber
Definition: AppleObjCRuntimeV2.h:106
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSManagedObject
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSManagedObject
Definition: AppleObjCRuntimeV2.h:108
lldb_private::AppleObjCRuntimeV2::m_has_objc_copyRealizedClassList
bool m_has_objc_copyRealizedClassList
Definition: AppleObjCRuntimeV2.h:432
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_payload_lshift
uint32_t m_objc_debug_taggedpointer_payload_lshift
Definition: AppleObjCRuntimeV2.h:219
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::gdb_objc_realized_classes_helper
Helper to read class info using the gdb_objc_realized_classes.
Definition: AppleObjCRuntimeV2.h:350
lldb_private::DataExtractor
Definition: DataExtractor.h:48
lldb_private::ConstString::GetStringRef
llvm::StringRef GetStringRef() const
Get the string value as a llvm::StringRef.
Definition: ConstString.h:202
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::TaggedPointerVendorRuntimeAssisted
TaggedPointerVendorRuntimeAssisted(AppleObjCRuntimeV2 &runtime, uint64_t objc_debug_taggedpointer_mask, uint32_t objc_debug_taggedpointer_slot_shift, uint32_t objc_debug_taggedpointer_slot_mask, uint32_t objc_debug_taggedpointer_payload_lshift, uint32_t objc_debug_taggedpointer_payload_rshift, lldb::addr_t objc_debug_taggedpointer_classes)
Definition: AppleObjCRuntimeV2.cpp:2654
lldb_private::AppleObjCRuntimeV2::m_loaded_objc_opt
bool m_loaded_objc_opt
Definition: AppleObjCRuntimeV2.h:433
lldb_private::AppleObjCRuntimeV2::GetISAHashTablePointer
lldb::addr_t GetISAHashTablePointer()
Definition: AppleObjCRuntimeV2.cpp:1496
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::EvaluateNonPointerISA
bool EvaluateNonPointerISA(ObjCISA isa, ObjCISA &ret_isa)
Definition: AppleObjCRuntimeV2.cpp:2844
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor
Abstraction to read the Objective-C class info from the shared cache.
Definition: AppleObjCRuntimeV2.h:366
lldb_private::AppleObjCRuntimeV2::GetRelativeSelectorBaseAddr
lldb::addr_t GetRelativeSelectorBaseAddr()
Returns the base address for relative method list selector strings.
Definition: AppleObjCRuntimeV2.h:89
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::IsPossibleExtendedTaggedPointer
bool IsPossibleExtendedTaggedPointer(lldb::addr_t ptr)
Definition: AppleObjCRuntimeV2.cpp:2753
lldb_private::AppleObjCRuntimeV2::HashTableSignature::NeedsUpdate
bool NeedsUpdate(Process *process, AppleObjCRuntimeV2 *runtime, RemoteNXMapTable &hash_table)
Definition: AppleObjCRuntimeV2.cpp:1389
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_index_mask
uint64_t m_objc_debug_indexed_isa_index_mask
Definition: AppleObjCRuntimeV2.h:164
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::~TaggedPointerVendorV2
~TaggedPointerVendorV2() override=default
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_isa_class_mask
uint64_t m_objc_debug_isa_class_mask
Definition: AppleObjCRuntimeV2.h:158
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::m_objc_copyRealizedClassList_helper
objc_copyRealizedClassList_helper m_objc_copyRealizedClassList_helper
Definition: AppleObjCRuntimeV2.h:362
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(ObjCISA isa)
Definition: AppleObjCRuntimeV2.cpp:2830
lldb_private::ConstString
Definition: ConstString.h:40
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::m_gdb_objc_realized_classes_helper
gdb_objc_realized_classes_helper m_gdb_objc_realized_classes_helper
Definition: AppleObjCRuntimeV2.h:361
lldb_private::AppleObjCRuntimeV2::HashTableSignature::m_count
uint32_t m_count
Definition: AppleObjCRuntimeV2.h:128
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted
Definition: AppleObjCRuntimeV2.h:197
lldb_private::AppleObjCRuntimeV2::GetNonPointerIsaCache
NonPointerISACache * GetNonPointerIsaCache()
Definition: AppleObjCRuntimeV2.h:412
lldb_private::AppleObjCRuntimeV2::CreateExceptionResolver
lldb::BreakpointResolverSP CreateExceptionResolver(const lldb::BreakpointSP &bkpt, bool catch_bp, bool throw_bp) override
Definition: AppleObjCRuntimeV2.cpp:1070
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_payload_lshift
uint32_t m_objc_debug_taggedpointer_ext_payload_lshift
Definition: AppleObjCRuntimeV2.h:260
lldb_private::AppleObjCRuntimeV2::WarnIfNoClassesCached
void WarnIfNoClassesCached(SharedCacheWarningReason reason)
Definition: AppleObjCRuntimeV2.cpp:2312
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::objc_copyRealizedClassList_helper
Helper to read class info using objc_copyRealizedClassList.
Definition: AppleObjCRuntimeV2.h:356
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_payload_rshift
uint32_t m_objc_debug_taggedpointer_payload_rshift
Definition: AppleObjCRuntimeV2.h:220
lldb_private::Value::ValueType
ValueType
Type that describes Value::m_value.
Definition: Value.h:41
lldb_private::AppleObjCRuntimeV2::m_decl_vendor_up
std::unique_ptr< DeclVendor > m_decl_vendor_up
Definition: AppleObjCRuntimeV2.h:426
lldb_private::ObjCLanguageRuntime::ObjCRuntimeVersions
ObjCRuntimeVersions
Definition: ObjCLanguageRuntime.h:36
lldb_private::AppleObjCRuntime
Definition: AppleObjCRuntime.h:23
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::TaggedPointerVendorLegacy
TaggedPointerVendorLegacy(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:279
lldb::DynamicValueType
DynamicValueType
Definition: lldb-enumerations.h:494
lldb_private::LanguageRuntime
Definition: LanguageRuntime.h:60
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::Cache
std::map< uint8_t, ObjCLanguageRuntime::ClassDescriptorSP > Cache
Definition: AppleObjCRuntimeV2.h:254
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::ComputeHelper
Helper ComputeHelper() const
Compute which helper to use.
Definition: AppleObjCRuntimeV2.cpp:1614
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::m_runtime
AppleObjCRuntimeV2 & m_runtime
Definition: AppleObjCRuntimeV2.h:186
lldb_private::AppleObjCRuntimeV2::m_realized_class_generation_count
uint64_t m_realized_class_generation_count
Definition: AppleObjCRuntimeV2.h:439
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSDate
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSDate
Definition: AppleObjCRuntimeV2.h:110
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition: Plugins/CMakeLists.txt:40
lldb_private::AppleObjCRuntimeV2::GetPluginName
llvm::StringRef GetPluginName() override
Definition: AppleObjCRuntimeV2.h:57
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_index_shift
uint64_t m_objc_debug_indexed_isa_index_shift
Definition: AppleObjCRuntimeV2.h:165
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::IsPossibleTaggedPointer
bool IsPossibleTaggedPointer(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2585
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_ext_cache
Cache m_ext_cache
Definition: AppleObjCRuntimeV2.h:256
lldb-private.h
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::CacheIterator
Cache::iterator CacheIterator
Definition: AppleObjCRuntimeV2.h:255
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::gdb_objc_realized_classes_helper::utility_function
std::unique_ptr< UtilityFunction > utility_function
Definition: AppleObjCRuntimeV2.h:351
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_cache
Cache m_cache
Definition: AppleObjCRuntimeV2.h:215
lldb_private::AppleObjCRuntimeV2::HashTableSignature::HashTableSignature
HashTableSignature()
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::Cache
std::map< uint8_t, ObjCLanguageRuntime::ClassDescriptorSP > Cache
Definition: AppleObjCRuntimeV2.h:213
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::ClassInfoExtractor
ClassInfoExtractor(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:308
lldb_private::AppleObjCRuntimeV2::m_noclasses_warning_emitted
bool m_noclasses_warning_emitted
Definition: AppleObjCRuntimeV2.h:437
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_module_wp
lldb::ModuleWP m_objc_module_wp
Definition: AppleObjCRuntimeV2.h:157
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2765
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::Helper
Helper
Definition: AppleObjCRuntimeV2.h:334
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::DescriptorMapUpdateResult
DescriptorMapUpdateResult(bool ran, uint32_t found)
Definition: AppleObjCRuntimeV2.h:293
lldb_private::ValueObject
ValueObject:
Definition: ValueObject.h:105
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::gdb_objc_realized_classes_helper::args
lldb::addr_t args
Definition: AppleObjCRuntimeV2.h:352
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_magic_value
uint64_t m_objc_debug_indexed_isa_magic_value
Definition: AppleObjCRuntimeV2.h:163
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::IsPossibleTaggedPointer
bool IsPossibleTaggedPointer(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2673
uint32_t
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_indexed_isa_cache
std::vector< lldb::addr_t > m_indexed_isa_cache
Definition: AppleObjCRuntimeV2.h:168
lldb_private::AppleObjCRuntimeV2::ID
static char ID
Definition: AppleObjCRuntimeV2.h:38
lldb_private::AppleObjCRuntimeV2::isA
bool isA(const void *ClassID) const override
Definition: AppleObjCRuntimeV2.h:40
lldb_private::DeclVendor
Definition: DeclVendor.h:20
lldb_private::Address
Definition: Address.h:59
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_slot_mask
uint32_t m_objc_debug_taggedpointer_slot_mask
Definition: AppleObjCRuntimeV2.h:218
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_cache
std::map< ObjCISA, ObjCLanguageRuntime::ClassDescriptorSP > m_cache
Definition: AppleObjCRuntimeV2.h:156
lldb_private::ObjCLanguageRuntime::ObjCISA
lldb::addr_t ObjCISA
Definition: ObjCLanguageRuntime.h:42
lldb_private::AppleObjCRuntimeV2::CreateObjectChecker
llvm::Expected< std::unique_ptr< UtilityFunction > > CreateObjectChecker(std::string name, ExecutionContext &exe_ctx) override
Definition: AppleObjCRuntimeV2.cpp:1086
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunction
UtilityFunction * GetClassInfoUtilityFunction(ExecutionContext &exe_ctx)
Definition: AppleObjCRuntimeV2.cpp:1718
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_magic_mask
uint64_t m_objc_debug_indexed_isa_magic_mask
Definition: AppleObjCRuntimeV2.h:162
ObjCLanguageRuntime.h
lldb_private::AppleObjCRuntimeV2::SharedCacheWarningReason::eExpressionExecutionFailure
@ eExpressionExecutionFailure
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::objc_copyRealizedClassList_helper::args
lldb::addr_t args
Definition: AppleObjCRuntimeV2.h:358
lldb_private::AppleObjCRuntimeV2::GetByteOffsetForIvar
size_t GetByteOffsetForIvar(CompilerType &parent_qual_type, const char *ivar_name) override
Definition: AppleObjCRuntimeV2.cpp:1140
lldb_private::AppleObjCRuntimeV2::m_tagged_pointer_vendor_up
std::unique_ptr< TaggedPointerVendor > m_tagged_pointer_vendor_up
Definition: AppleObjCRuntimeV2.h:435
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2
Definition: AppleObjCRuntimeV2.h:176
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::operator=
const TaggedPointerVendorExtended & operator=(const TaggedPointerVendorExtended &)=delete
LLDB_INVALID_ADDRESS
#define LLDB_INVALID_ADDRESS
Definition: lldb-defines.h:86
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor
We can read the class info from the Objective-C runtime using gdb_objc_realized_classes or objc_copyR...
Definition: AppleObjCRuntimeV2.h:325
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::operator=
const NonPointerISACache & operator=(const NonPointerISACache &)=delete
lldb_private::CompilerType
Generic representation of a type in a programming language.
Definition: CompilerType.h:33
lldb_private::AppleObjCRuntimeV2::GetEncodingToType
EncodingToTypeSP GetEncodingToType() override
Definition: AppleObjCRuntimeV2.cpp:2948
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Fail
static DescriptorMapUpdateResult Fail()
Definition: AppleObjCRuntimeV2.h:298
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoArgs
lldb::addr_t & GetClassInfoArgs(Helper helper)
Definition: AppleObjCRuntimeV2.cpp:1603
lldb_private::AppleObjCRuntimeV2::m_hash_signature
HashTableSignature m_hash_signature
Definition: AppleObjCRuntimeV2.h:430
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::CreateInstance
static TaggedPointerVendorV2 * CreateInstance(AppleObjCRuntimeV2 &runtime, const lldb::ModuleSP &objc_module_sp)
Definition: AppleObjCRuntimeV2.cpp:2478
lldb_private::ClassDescriptorV2
Definition: AppleObjCClassDescriptorV2.h:21
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::AppleObjCRuntimeV2::m_dynamic_class_info_extractor
DynamicClassInfoExtractor m_dynamic_class_info_extractor
Definition: AppleObjCRuntimeV2.h:423
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::objc_copyRealizedClassList
@ objc_copyRealizedClassList
Definition: AppleObjCRuntimeV2.h:334
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSDateTS
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSDateTS
Definition: AppleObjCRuntimeV2.h:107
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::m_runtime
AppleObjCRuntimeV2 & m_runtime
The lifetime of this object is tied to that of the runtime.
Definition: AppleObjCRuntimeV2.h:313
lldb_private::AppleObjCRuntimeV2::GetSharedCacheBaseAddress
lldb::addr_t GetSharedCacheBaseAddress()
Definition: AppleObjCRuntimeV2.cpp:2181
lldb_private::AppleObjCRuntimeV2::classof
static bool classof(const LanguageRuntime *runtime)
Definition: AppleObjCRuntimeV2.h:44
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSAtom
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSAtom
Definition: AppleObjCRuntimeV2.h:105
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::m_utility_function
std::unique_ptr< UtilityFunction > m_utility_function
Definition: AppleObjCRuntimeV2.h:379
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_isa_magic_mask
uint64_t m_objc_debug_isa_magic_mask
Definition: AppleObjCRuntimeV2.h:159
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_slot_shift
uint32_t m_objc_debug_taggedpointer_slot_shift
Definition: AppleObjCRuntimeV2.h:217
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy
Definition: AppleObjCRuntimeV2.h:271
lldb_private::TypeAndOrName
Sometimes you can find the name of the type corresponding to an object, but we don't have debug infor...
Definition: Type.h:394
lldb_private::AppleObjCRuntimeV2::AppleObjCRuntimeV2
AppleObjCRuntimeV2(Process *process, const lldb::ModuleSP &objc_module_sp)
Definition: AppleObjCRuntimeV2.cpp:655
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_update_ran
bool m_update_ran
Definition: AppleObjCRuntimeV2.h:290
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::TaggedPointerVendorExtended
TaggedPointerVendorExtended(AppleObjCRuntimeV2 &runtime, uint64_t objc_debug_taggedpointer_mask, uint64_t objc_debug_taggedpointer_ext_mask, uint32_t objc_debug_taggedpointer_slot_shift, uint32_t objc_debug_taggedpointer_ext_slot_shift, uint32_t objc_debug_taggedpointer_slot_mask, uint32_t objc_debug_taggedpointer_ext_slot_mask, uint32_t objc_debug_taggedpointer_payload_lshift, uint32_t objc_debug_taggedpointer_payload_rshift, uint32_t objc_debug_taggedpointer_ext_payload_lshift, uint32_t objc_debug_taggedpointer_ext_payload_rshift, lldb::addr_t objc_debug_taggedpointer_classes, lldb::addr_t objc_debug_taggedpointer_ext_classes)
Definition: AppleObjCRuntimeV2.cpp:2719
lldb_private::AppleObjCRuntimeV2::GetCFBooleanValuesIfNeeded
bool GetCFBooleanValuesIfNeeded()
Definition: AppleObjCRuntimeV2.cpp:2965
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::UpdateISAToDescriptorMap
DescriptorMapUpdateResult UpdateISAToDescriptorMap()
Definition: AppleObjCRuntimeV2.cpp:1958
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_slot_mask
uint32_t m_objc_debug_taggedpointer_ext_slot_mask
Definition: AppleObjCRuntimeV2.h:259
lldb_private::AppleObjCRuntimeV2::GetDeclVendor
DeclVendor * GetDeclVendor() override
Definition: AppleObjCRuntimeV2.cpp:2343
lldb_private::AppleObjCRuntimeV2::GetPluginNameStatic
static lldb_private::ConstString GetPluginNameStatic()
Definition: AppleObjCRuntimeV2.cpp:1064
lldb_private::AppleObjCRuntimeV2::UpdateISAToDescriptorMapIfNeeded
void UpdateISAToDescriptorMapIfNeeded() override
Definition: AppleObjCRuntimeV2.cpp:2198
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2678
AppleObjCRuntime.h
lldb_private::AppleObjCRuntimeV2::RealizedClassGenerationCountChanged
bool RealizedClassGenerationCountChanged()
Update the generation count of realized classes.
Definition: AppleObjCRuntimeV2.cpp:2271
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor
Abstraction to read the Objective-C class info.
Definition: AppleObjCRuntimeV2.h:306
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::TaggedPointerVendorV2
TaggedPointerVendorV2(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:188
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_num_found
uint32_t m_num_found
Definition: AppleObjCRuntimeV2.h:291
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_classes
lldb::addr_t m_objc_debug_taggedpointer_ext_classes
Definition: AppleObjCRuntimeV2.h:262
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended
Definition: AppleObjCRuntimeV2.h:231
lldb_private::UtilityFunction
Definition: UtilityFunction.h:30
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::SharedCacheClassInfoExtractor
SharedCacheClassInfoExtractor(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:368
lldb_private::AppleObjCRuntimeV2::HasSymbol
bool HasSymbol(ConstString Name)
Definition: AppleObjCRuntimeV2.cpp:1946
lldb_private::AppleObjCRuntimeV2::GetDynamicTypeAndAddress
bool GetDynamicTypeAndAddress(ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type) override
Definition: AppleObjCRuntimeV2.cpp:678
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_indexed_classes
lldb::addr_t m_objc_indexed_classes
Definition: AppleObjCRuntimeV2.h:166
lldb_private::AppleObjCRuntimeV2::ParseClassInfoArray
uint32_t ParseClassInfoArray(const lldb_private::DataExtractor &data, uint32_t num_class_infos)
Definition: AppleObjCRuntimeV2.cpp:1880
lldb_private::AppleObjCRuntimeV2::Initialize
static void Initialize()
Definition: AppleObjCRuntimeV2.cpp:1050