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 
36  static llvm::StringRef GetPluginNameStatic() { return "apple-objc-v2"; }
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 { return GetPluginNameStatic(); }
58 
61  }
62 
63  size_t GetByteOffsetForIvar(CompilerType &parent_qual_type,
64  const char *ivar_name) override;
65 
66  void UpdateISAToDescriptorMapIfNeeded() override;
67 
69 
71 
72  DeclVendor *GetDeclVendor() override;
73 
75 
77 
78  bool IsTaggedPointer(lldb::addr_t ptr) override;
79 
81  return m_tagged_pointer_vendor_up.get();
82  }
83 
85 
86  /// Returns the base address for relative method list selector strings.
89  }
90 
91  void SetRelativeSelectorBaseAddr(lldb::addr_t relative_selector_base) {
92  m_relative_selector_base = relative_selector_base;
93  }
94 
96  lldb::addr_t &cf_false) override;
97 
98  // none of these are valid ISAs - we use them to infer the type
99  // of tagged pointers - if we have something meaningful to say
100  // we report an actual type - otherwise, we just say tagged
101  // there is no connection between the values here and the tagged pointers map
107  5;
109 
110 protected:
111  lldb::BreakpointResolverSP
112  CreateExceptionResolver(const lldb::BreakpointSP &bkpt, bool catch_bp,
113  bool throw_bp) override;
114 
115 private:
117  public:
119 
120  bool NeedsUpdate(Process *process, AppleObjCRuntimeV2 *runtime,
121  RemoteNXMapTable &hash_table);
122 
123  void UpdateSignature(const RemoteNXMapTable &hash_table);
124 
125  protected:
129  };
130 
132  public:
133  static NonPointerISACache *
135  const lldb::ModuleSP &objc_module_sp);
136 
138 
139  private:
141  const lldb::ModuleSP &objc_module_sp,
142  uint64_t objc_debug_isa_class_mask,
143  uint64_t objc_debug_isa_magic_mask,
144  uint64_t objc_debug_isa_magic_value,
145  uint64_t objc_debug_indexed_isa_magic_mask,
146  uint64_t objc_debug_indexed_isa_magic_value,
147  uint64_t objc_debug_indexed_isa_index_mask,
148  uint64_t objc_debug_indexed_isa_index_shift,
149  lldb::addr_t objc_indexed_classes);
150 
151  bool EvaluateNonPointerISA(ObjCISA isa, ObjCISA &ret_isa);
152 
154  std::map<ObjCISA, ObjCLanguageRuntime::ClassDescriptorSP> m_cache;
155  lldb::ModuleWP m_objc_module_wp;
159 
165 
166  std::vector<lldb::addr_t> m_indexed_isa_cache;
167 
168  friend class AppleObjCRuntimeV2;
169 
170  NonPointerISACache(const NonPointerISACache &) = delete;
171  const NonPointerISACache &operator=(const NonPointerISACache &) = delete;
172  };
173 
176  public:
177  ~TaggedPointerVendorV2() override = default;
178 
179  static TaggedPointerVendorV2 *
181  const lldb::ModuleSP &objc_module_sp);
182 
183  protected:
185 
187  : TaggedPointerVendor(), m_runtime(runtime) {}
188 
189  private:
191  const TaggedPointerVendorV2 &
192  operator=(const TaggedPointerVendorV2 &) = delete;
193  };
194 
196  public:
197  bool IsPossibleTaggedPointer(lldb::addr_t ptr) override;
198 
200  GetClassDescriptor(lldb::addr_t ptr) override;
201 
202  protected:
204  AppleObjCRuntimeV2 &runtime, uint64_t objc_debug_taggedpointer_mask,
205  uint32_t objc_debug_taggedpointer_slot_shift,
206  uint32_t objc_debug_taggedpointer_slot_mask,
207  uint32_t objc_debug_taggedpointer_payload_lshift,
208  uint32_t objc_debug_taggedpointer_payload_rshift,
209  lldb::addr_t objc_debug_taggedpointer_classes);
210 
211  typedef std::map<uint8_t, ObjCLanguageRuntime::ClassDescriptorSP> Cache;
212  typedef Cache::iterator CacheIterator;
220 
222 
224  const TaggedPointerVendorRuntimeAssisted &) = delete;
227  };
228 
231  public:
233  GetClassDescriptor(lldb::addr_t ptr) override;
234 
235  protected:
237  AppleObjCRuntimeV2 &runtime, uint64_t objc_debug_taggedpointer_mask,
238  uint64_t objc_debug_taggedpointer_ext_mask,
239  uint32_t objc_debug_taggedpointer_slot_shift,
240  uint32_t objc_debug_taggedpointer_ext_slot_shift,
241  uint32_t objc_debug_taggedpointer_slot_mask,
242  uint32_t objc_debug_taggedpointer_ext_slot_mask,
243  uint32_t objc_debug_taggedpointer_payload_lshift,
244  uint32_t objc_debug_taggedpointer_payload_rshift,
245  uint32_t objc_debug_taggedpointer_ext_payload_lshift,
246  uint32_t objc_debug_taggedpointer_ext_payload_rshift,
247  lldb::addr_t objc_debug_taggedpointer_classes,
248  lldb::addr_t objc_debug_taggedpointer_ext_classes);
249 
251 
252  typedef std::map<uint8_t, ObjCLanguageRuntime::ClassDescriptorSP> Cache;
253  typedef Cache::iterator CacheIterator;
261 
263 
266  operator=(const TaggedPointerVendorExtended &) = delete;
267  };
268 
270  public:
271  bool IsPossibleTaggedPointer(lldb::addr_t ptr) override;
272 
274  GetClassDescriptor(lldb::addr_t ptr) override;
275 
276  protected:
278  : TaggedPointerVendorV2(runtime) {}
279 
281 
284  operator=(const TaggedPointerVendorLegacy &) = delete;
285  };
286 
290 
292  m_update_ran = ran;
293  m_num_found = found;
294  }
295 
296  static DescriptorMapUpdateResult Fail() { return {false, 0}; }
297 
299  return {true, found};
300  }
301  };
302 
303  /// Abstraction to read the Objective-C class info.
305  public:
307  std::mutex &GetMutex() { return m_mutex; }
308 
309  protected:
310  /// The lifetime of this object is tied to that of the runtime.
312  std::mutex m_mutex;
313  };
314 
315  /// We can read the class info from the Objective-C runtime using
316  /// gdb_objc_realized_classes, objc_copyRealizedClassList or
317  /// objc_getRealizedClassList_trylock. The RealizedClassList variants are
318  /// preferred because they include lazily named classes, but they are not
319  /// always available or safe to call.
320  ///
321  /// We potentially need more than one helper for the same process, because we
322  /// may need to use gdb_objc_realized_classes until dyld is initialized and
323  /// then switch over to objc_copyRealizedClassList or
324  /// objc_getRealizedClassList_trylock for lazily named classes.
326  public:
328  : ClassInfoExtractor(runtime) {}
329 
332 
333  private:
334  enum Helper {
338  };
339 
340  /// Compute which helper to use. If dyld is not yet fully initialized we
341  /// must use gdb_objc_realized_classes. Otherwise, we prefer
342  /// objc_getRealizedClassList_trylock and objc_copyRealizedClassList
343  /// respectively, depending on availability.
344  Helper ComputeHelper(ExecutionContext &exe_ctx) const;
345 
347  Helper helper);
349 
350  std::unique_ptr<UtilityFunction>
352  std::string code, std::string name);
353 
355  std::unique_ptr<UtilityFunction> utility_function;
357  };
358 
362  };
363 
364  /// Abstraction to read the Objective-C class info from the shared cache.
366  public:
368  : ClassInfoExtractor(runtime) {}
369 
371 
372  private:
374 
375  std::unique_ptr<UtilityFunction>
377 
378  std::unique_ptr<UtilityFunction> m_utility_function;
380  };
381 
382  AppleObjCRuntimeV2(Process *process, const lldb::ModuleSP &objc_module_sp);
383 
385 
387 
388  /// Update the generation count of realized classes. This is not an exact
389  /// count but rather a value that is incremented when new classes are realized
390  /// or destroyed. Unlike the count in gdb_objc_realized_classes, it will
391  /// change when lazily named classes get realized.
393 
395  uint32_t num_class_infos);
396 
400  };
401 
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;
435  std::unique_ptr<NonPointerISACache> m_non_pointer_isa_cache_up;
436  std::unique_ptr<TaggedPointerVendor> m_tagged_pointer_vendor_up;
440  llvm::Optional<std::pair<lldb::addr_t, lldb::addr_t>> m_CFBoolean_values;
442 };
443 
444 } // namespace lldb_private
445 
446 #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:1502
lldb_private::AppleObjCRuntimeV2::HashTableSignature::m_buckets_ptr
lldb::addr_t m_buckets_ptr
Definition: AppleObjCRuntimeV2.h:128
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:1765
lldb_private::AppleObjCRuntimeV2::GetTaggedPointerObfuscator
lldb::addr_t GetTaggedPointerObfuscator()
Definition: AppleObjCRuntimeV2.cpp:1562
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::operator=
const TaggedPointerVendorLegacy & operator=(const TaggedPointerVendorLegacy &)=delete
lldb_private::ObjCLanguageRuntime::TaggedPointerVendor
Definition: ObjCLanguageRuntime.h:185
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_runtime
AppleObjCRuntimeV2 & m_runtime
Definition: AppleObjCRuntimeV2.h:153
lldb_private::AppleObjCRuntimeV2::GetTaggedPointerVendor
TaggedPointerVendor * GetTaggedPointerVendor() override
Definition: AppleObjCRuntimeV2.h:80
lldb_private::AppleObjCRuntimeV2::~AppleObjCRuntimeV2
~AppleObjCRuntimeV2() override=default
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::DynamicClassInfoExtractor
DynamicClassInfoExtractor(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:327
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::GetMutex
std::mutex & GetMutex()
Definition: AppleObjCRuntimeV2.h:307
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_payload_rshift
uint32_t m_objc_debug_taggedpointer_ext_payload_rshift
Definition: AppleObjCRuntimeV2.h:259
lldb_private::AppleObjCRuntimeV2::GetPointerISA
ObjCISA GetPointerISA(ObjCISA isa)
Definition: AppleObjCRuntimeV2.cpp:3163
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::operator=
const TaggedPointerVendorRuntimeAssisted & operator=(const TaggedPointerVendorRuntimeAssisted &)=delete
lldb_private::AppleObjCRuntimeV2::GetClassDescriptor
ClassDescriptorSP GetClassDescriptor(ValueObject &in_value) override
Definition: AppleObjCRuntimeV2.cpp:1512
lldb_private::AppleObjCRuntimeV2::SharedCacheWarningReason
SharedCacheWarningReason
Definition: AppleObjCRuntimeV2.h:397
lldb_private::AppleObjCRuntimeV2::HashTableSignature::m_num_buckets
uint32_t m_num_buckets
Definition: AppleObjCRuntimeV2.h:127
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult
Definition: AppleObjCRuntimeV2.h:287
lldb_private::AppleObjCRuntimeV2::GetRuntimeVersion
ObjCRuntimeVersions GetRuntimeVersion() const override
Definition: AppleObjCRuntimeV2.h:59
lldb_private::ObjCLanguageRuntime::ClassDescriptorSP
std::shared_ptr< ClassDescriptor > ClassDescriptorSP
Definition: ObjCLanguageRuntime.h:45
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::UpdateISAToDescriptorMap
DescriptorMapUpdateResult UpdateISAToDescriptorMap(RemoteNXMapTable &hash_table)
Definition: AppleObjCRuntimeV2.cpp:1861
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::CacheIterator
Cache::iterator CacheIterator
Definition: AppleObjCRuntimeV2.h:212
lldb_private::AppleObjCRuntimeV2::GetValuesForGlobalCFBooleans
void GetValuesForGlobalCFBooleans(lldb::addr_t &cf_true, lldb::addr_t &cf_false) override
Definition: AppleObjCRuntimeV2.cpp:3216
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2792
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::ComputeHelper
Helper ComputeHelper(ExecutionContext &exe_ctx) const
Compute which helper to use.
Definition: AppleObjCRuntimeV2.cpp:1733
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::CreateInstance
static NonPointerISACache * CreateInstance(AppleObjCRuntimeV2 &runtime, const lldb::ModuleSP &objc_module_sp)
Definition: AppleObjCRuntimeV2.cpp:2611
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:2320
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:158
lldb_private::AppleObjCRuntimeV2::IsTaggedPointer
bool IsTaggedPointer(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:1281
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::m_args
lldb::addr_t m_args
Definition: AppleObjCRuntimeV2.h:379
lldb_private::Process
Definition: Process.h:338
lldb_private::ObjCLanguageRuntime::EncodingToTypeSP
std::shared_ptr< EncodingToType > EncodingToTypeSP
Definition: ObjCLanguageRuntime.h:221
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_mask
uint64_t m_objc_debug_taggedpointer_ext_mask
Definition: AppleObjCRuntimeV2.h:255
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Success
static DescriptorMapUpdateResult Success(uint32_t found)
Definition: AppleObjCRuntimeV2.h:298
lldb_private::AppleObjCRuntimeV2::HashTableSignature::UpdateSignature
void UpdateSignature(const RemoteNXMapTable &hash_table)
Definition: AppleObjCRuntimeV2.cpp:1475
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:256
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_mask
uint64_t m_objc_debug_taggedpointer_mask
Definition: AppleObjCRuntimeV2.h:214
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::gdb_objc_realized_classes
@ gdb_objc_realized_classes
Definition: AppleObjCRuntimeV2.h:335
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_no_classes_cached_warning
std::once_flag m_no_classes_cached_warning
Definition: AppleObjCRuntimeV2.h:438
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:811
RemoteNXMapTable
Definition: AppleObjCRuntimeV2.cpp:1287
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::m_gdb_objc_realized_classes_helper
UtilityFunctionHelper m_gdb_objc_realized_classes_helper
Definition: AppleObjCRuntimeV2.h:359
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:1688
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::UtilityFunctionHelper
Definition: AppleObjCRuntimeV2.h:354
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:91
lldb_private::AppleObjCRuntimeV2::Terminate
static void Terminate()
Definition: AppleObjCRuntimeV2.cpp:1158
lldb_private::AppleObjCRuntimeV2::m_CFBoolean_values
llvm::Optional< std::pair< lldb::addr_t, lldb::addr_t > > m_CFBoolean_values
Definition: AppleObjCRuntimeV2.h:440
lldb_private::AppleObjCRuntimeV2::HashTableSignature
Definition: AppleObjCRuntimeV2.h:116
lldb_private::AppleObjCRuntimeV2::LookupRuntimeSymbol
lldb::addr_t LookupRuntimeSymbol(ConstString name) override
Definition: AppleObjCRuntimeV2.cpp:2551
lldb_private::AppleObjCRuntimeV2::m_non_pointer_isa_cache_up
std::unique_ptr< NonPointerISACache > m_non_pointer_isa_cache_up
Definition: AppleObjCRuntimeV2.h:435
lldb_private::AppleObjCRuntimeV2::m_has_objc_getRealizedClassList_trylock
bool m_has_objc_getRealizedClassList_trylock
Definition: AppleObjCRuntimeV2.h:433
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA
Definition: AppleObjCRuntimeV2.h:102
lldb_private::AppleObjCRuntimeV2::m_has_object_getClass
bool m_has_object_getClass
Definition: AppleObjCRuntimeV2.h:431
lldb_private::AppleObjCRuntimeV2::NonPointerISACache
Definition: AppleObjCRuntimeV2.h:131
lldb_private::AppleObjCRuntimeV2::SharedCacheWarningReason::eNotEnoughClassesRead
@ eNotEnoughClassesRead
lldb_private::AppleObjCRuntimeV2::m_no_expanded_cache_warning
std::once_flag m_no_expanded_cache_warning
Definition: AppleObjCRuntimeV2.h:439
lldb_private::AppleObjCRuntimeV2::m_encoding_to_type_sp
EncodingToTypeSP m_encoding_to_type_sp
Definition: AppleObjCRuntimeV2.h:437
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::m_mutex
std::mutex m_mutex
Definition: AppleObjCRuntimeV2.h:312
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_classes
lldb::addr_t m_objc_debug_taggedpointer_classes
Definition: AppleObjCRuntimeV2.h:219
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:104
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSManagedObject
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSManagedObject
Definition: AppleObjCRuntimeV2.h:106
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:217
lldb_private::DataExtractor
Definition: DataExtractor.h:48
lldb_private::AppleObjCRuntimeV2::GetPluginNameStatic
static llvm::StringRef GetPluginNameStatic()
Definition: AppleObjCRuntimeV2.h:36
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:2855
lldb_private::AppleObjCRuntimeV2::m_loaded_objc_opt
bool m_loaded_objc_opt
Definition: AppleObjCRuntimeV2.h:434
lldb_private::AppleObjCRuntimeV2::GetISAHashTablePointer
lldb::addr_t GetISAHashTablePointer()
Definition: AppleObjCRuntimeV2.cpp:1595
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::EvaluateNonPointerISA
bool EvaluateNonPointerISA(ObjCISA isa, ObjCISA &ret_isa)
Definition: AppleObjCRuntimeV2.cpp:3051
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor
Abstraction to read the Objective-C class info from the shared cache.
Definition: AppleObjCRuntimeV2.h:365
lldb_private::AppleObjCRuntimeV2::GetRelativeSelectorBaseAddr
lldb::addr_t GetRelativeSelectorBaseAddr()
Returns the base address for relative method list selector strings.
Definition: AppleObjCRuntimeV2.h:87
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::IsPossibleExtendedTaggedPointer
bool IsPossibleExtendedTaggedPointer(lldb::addr_t ptr)
Definition: AppleObjCRuntimeV2.cpp:2960
lldb_private::AppleObjCRuntimeV2::HashTableSignature::NeedsUpdate
bool NeedsUpdate(Process *process, AppleObjCRuntimeV2 *runtime, RemoteNXMapTable &hash_table)
Definition: AppleObjCRuntimeV2.cpp:1482
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_index_mask
uint64_t m_objc_debug_indexed_isa_index_mask
Definition: AppleObjCRuntimeV2.h:162
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::m_objc_getRealizedClassList_trylock_helper
UtilityFunctionHelper m_objc_getRealizedClassList_trylock_helper
Definition: AppleObjCRuntimeV2.h:361
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:156
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(ObjCISA isa)
Definition: AppleObjCRuntimeV2.cpp:3037
lldb_private::ConstString
Definition: ConstString.h:39
lldb_private::AppleObjCRuntimeV2::HashTableSignature::m_count
uint32_t m_count
Definition: AppleObjCRuntimeV2.h:126
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted
Definition: AppleObjCRuntimeV2.h:195
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:1163
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_payload_lshift
uint32_t m_objc_debug_taggedpointer_ext_payload_lshift
Definition: AppleObjCRuntimeV2.h:258
lldb_private::AppleObjCRuntimeV2::WarnIfNoClassesCached
void WarnIfNoClassesCached(SharedCacheWarningReason reason)
Definition: AppleObjCRuntimeV2.cpp:2484
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_payload_rshift
uint32_t m_objc_debug_taggedpointer_payload_rshift
Definition: AppleObjCRuntimeV2.h:218
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:37
lldb_private::AppleObjCRuntime
Definition: AppleObjCRuntime.h:23
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::TaggedPointerVendorLegacy
TaggedPointerVendorLegacy(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:277
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:252
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::m_runtime
AppleObjCRuntimeV2 & m_runtime
Definition: AppleObjCRuntimeV2.h:184
lldb_private::AppleObjCRuntimeV2::m_realized_class_generation_count
uint64_t m_realized_class_generation_count
Definition: AppleObjCRuntimeV2.h:441
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSDate
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSDate
Definition: AppleObjCRuntimeV2.h:108
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:163
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::IsPossibleTaggedPointer
bool IsPossibleTaggedPointer(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2786
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_ext_cache
Cache m_ext_cache
Definition: AppleObjCRuntimeV2.h:254
lldb-private.h
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::CacheIterator
Cache::iterator CacheIterator
Definition: AppleObjCRuntimeV2.h:253
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_cache
Cache m_cache
Definition: AppleObjCRuntimeV2.h:213
lldb_private::AppleObjCRuntimeV2::HashTableSignature::HashTableSignature
HashTableSignature()
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::Cache
std::map< uint8_t, ObjCLanguageRuntime::ClassDescriptorSP > Cache
Definition: AppleObjCRuntimeV2.h:211
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::objc_getRealizedClassList_trylock
@ objc_getRealizedClassList_trylock
Definition: AppleObjCRuntimeV2.h:337
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::ClassInfoExtractor
ClassInfoExtractor(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:306
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_module_wp
lldb::ModuleWP m_objc_module_wp
Definition: AppleObjCRuntimeV2.h:155
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2972
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::Helper
Helper
Definition: AppleObjCRuntimeV2.h:334
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunctionImpl
std::unique_ptr< UtilityFunction > GetClassInfoUtilityFunctionImpl(ExecutionContext &exe_ctx, Helper helper, std::string code, std::string name)
Definition: AppleObjCRuntimeV2.cpp:1623
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::DescriptorMapUpdateResult
DescriptorMapUpdateResult(bool ran, uint32_t found)
Definition: AppleObjCRuntimeV2.h:291
lldb_private::ValueObject
ValueObject:
Definition: ValueObject.h:105
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_magic_value
uint64_t m_objc_debug_indexed_isa_magic_value
Definition: AppleObjCRuntimeV2.h:161
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::IsPossibleTaggedPointer
bool IsPossibleTaggedPointer(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2874
uint32_t
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_indexed_isa_cache
std::vector< lldb::addr_t > m_indexed_isa_cache
Definition: AppleObjCRuntimeV2.h:166
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::AppleObjCRuntimeV2::DynamicClassInfoExtractor::UtilityFunctionHelper::utility_function
std::unique_ptr< UtilityFunction > utility_function
Definition: AppleObjCRuntimeV2.h:355
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:216
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_cache
std::map< ObjCISA, ObjCLanguageRuntime::ClassDescriptorSP > m_cache
Definition: AppleObjCRuntimeV2.h:154
lldb_private::ObjCLanguageRuntime::ObjCISA
lldb::addr_t ObjCISA
Definition: ObjCLanguageRuntime.h:43
lldb_private::AppleObjCRuntimeV2::CreateObjectChecker
llvm::Expected< std::unique_ptr< UtilityFunction > > CreateObjectChecker(std::string name, ExecutionContext &exe_ctx) override
Definition: AppleObjCRuntimeV2.cpp:1179
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunction
UtilityFunction * GetClassInfoUtilityFunction(ExecutionContext &exe_ctx)
Definition: AppleObjCRuntimeV2.cpp:1853
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_indexed_isa_magic_mask
uint64_t m_objc_debug_indexed_isa_magic_mask
Definition: AppleObjCRuntimeV2.h:160
ObjCLanguageRuntime.h
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::m_objc_copyRealizedClassList_helper
UtilityFunctionHelper m_objc_copyRealizedClassList_helper
Definition: AppleObjCRuntimeV2.h:360
lldb_private::AppleObjCRuntimeV2::SharedCacheWarningReason::eExpressionExecutionFailure
@ eExpressionExecutionFailure
lldb_private::AppleObjCRuntimeV2::GetByteOffsetForIvar
size_t GetByteOffsetForIvar(CompilerType &parent_qual_type, const char *ivar_name) override
Definition: AppleObjCRuntimeV2.cpp:1233
lldb_private::AppleObjCRuntimeV2::m_tagged_pointer_vendor_up
std::unique_ptr< TaggedPointerVendor > m_tagged_pointer_vendor_up
Definition: AppleObjCRuntimeV2.h:436
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2
Definition: AppleObjCRuntimeV2.h:174
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::operator=
const TaggedPointerVendorExtended & operator=(const TaggedPointerVendorExtended &)=delete
LLDB_INVALID_ADDRESS
#define LLDB_INVALID_ADDRESS
Definition: lldb-defines.h:74
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor
We can read the class info from the Objective-C runtime using gdb_objc_realized_classes,...
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::DynamicClassInfoExtractor::UtilityFunctionHelper::args
lldb::addr_t args
Definition: AppleObjCRuntimeV2.h:356
lldb_private::AppleObjCRuntimeV2::GetEncodingToType
EncodingToTypeSP GetEncodingToType() override
Definition: AppleObjCRuntimeV2.cpp:3155
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Fail
static DescriptorMapUpdateResult Fail()
Definition: AppleObjCRuntimeV2.h:296
lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoArgs
lldb::addr_t & GetClassInfoArgs(Helper helper)
Definition: AppleObjCRuntimeV2.cpp:1720
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:2679
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:336
lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSDateTS
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSDateTS
Definition: AppleObjCRuntimeV2.h:105
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::m_runtime
AppleObjCRuntimeV2 & m_runtime
The lifetime of this object is tied to that of the runtime.
Definition: AppleObjCRuntimeV2.h:311
lldb_private::AppleObjCRuntimeV2::GetSharedCacheBaseAddress
lldb::addr_t GetSharedCacheBaseAddress()
Definition: AppleObjCRuntimeV2.cpp:2353
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:103
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::m_utility_function
std::unique_ptr< UtilityFunction > m_utility_function
Definition: AppleObjCRuntimeV2.h:378
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_debug_isa_magic_mask
uint64_t m_objc_debug_isa_magic_mask
Definition: AppleObjCRuntimeV2.h:157
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::m_objc_debug_taggedpointer_slot_shift
uint32_t m_objc_debug_taggedpointer_slot_shift
Definition: AppleObjCRuntimeV2.h:215
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy
Definition: AppleObjCRuntimeV2.h:269
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:397
lldb_private::AppleObjCRuntimeV2::WarnIfNoExpandedSharedCache
void WarnIfNoExpandedSharedCache()
Definition: AppleObjCRuntimeV2.cpp:2510
lldb_private::AppleObjCRuntimeV2::AppleObjCRuntimeV2
AppleObjCRuntimeV2(Process *process, const lldb::ModuleSP &objc_module_sp)
Definition: AppleObjCRuntimeV2.cpp:728
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_update_ran
bool m_update_ran
Definition: AppleObjCRuntimeV2.h:288
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:2926
lldb_private::AppleObjCRuntimeV2::GetCFBooleanValuesIfNeeded
bool GetCFBooleanValuesIfNeeded()
Definition: AppleObjCRuntimeV2.cpp:3172
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::UpdateISAToDescriptorMap
DescriptorMapUpdateResult UpdateISAToDescriptorMap()
Definition: AppleObjCRuntimeV2.cpp:2126
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_slot_mask
uint32_t m_objc_debug_taggedpointer_ext_slot_mask
Definition: AppleObjCRuntimeV2.h:257
lldb_private::AppleObjCRuntimeV2::GetDeclVendor
DeclVendor * GetDeclVendor() override
Definition: AppleObjCRuntimeV2.cpp:2544
lldb_private::AppleObjCRuntimeV2::UpdateISAToDescriptorMapIfNeeded
void UpdateISAToDescriptorMapIfNeeded() override
Definition: AppleObjCRuntimeV2.cpp:2370
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorRuntimeAssisted::GetClassDescriptor
ObjCLanguageRuntime::ClassDescriptorSP GetClassDescriptor(lldb::addr_t ptr) override
Definition: AppleObjCRuntimeV2.cpp:2879
AppleObjCRuntime.h
lldb_private::AppleObjCRuntimeV2::RealizedClassGenerationCountChanged
bool RealizedClassGenerationCountChanged()
Update the generation count of realized classes.
Definition: AppleObjCRuntimeV2.cpp:2443
lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor
Abstraction to read the Objective-C class info.
Definition: AppleObjCRuntimeV2.h:304
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::TaggedPointerVendorV2
TaggedPointerVendorV2(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:186
lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_num_found
uint32_t m_num_found
Definition: AppleObjCRuntimeV2.h:289
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::m_objc_debug_taggedpointer_ext_classes
lldb::addr_t m_objc_debug_taggedpointer_ext_classes
Definition: AppleObjCRuntimeV2.h:260
lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended
Definition: AppleObjCRuntimeV2.h:229
lldb_private::UtilityFunction
Definition: UtilityFunction.h:30
lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::SharedCacheClassInfoExtractor
SharedCacheClassInfoExtractor(AppleObjCRuntimeV2 &runtime)
Definition: AppleObjCRuntimeV2.h:367
lldb_private::AppleObjCRuntimeV2::HasSymbol
bool HasSymbol(ConstString Name)
Definition: AppleObjCRuntimeV2.cpp:2114
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:756
lldb_private::AppleObjCRuntimeV2::NonPointerISACache::m_objc_indexed_classes
lldb::addr_t m_objc_indexed_classes
Definition: AppleObjCRuntimeV2.h:164
lldb_private::AppleObjCRuntimeV2::ParseClassInfoArray
uint32_t ParseClassInfoArray(const lldb_private::DataExtractor &data, uint32_t num_class_infos)
Definition: AppleObjCRuntimeV2.cpp:2048
lldb_private::AppleObjCRuntimeV2::Initialize
static void Initialize()
Definition: AppleObjCRuntimeV2.cpp:1148