diff options
Diffstat (limited to 'include/lldb/Target/ObjCLanguageRuntime.h')
| -rw-r--r-- | include/lldb/Target/ObjCLanguageRuntime.h | 62 |
1 files changed, 57 insertions, 5 deletions
diff --git a/include/lldb/Target/ObjCLanguageRuntime.h b/include/lldb/Target/ObjCLanguageRuntime.h index 42a391478e3e1..88874c767a1b1 100644 --- a/include/lldb/Target/ObjCLanguageRuntime.h +++ b/include/lldb/Target/ObjCLanguageRuntime.h @@ -26,6 +26,8 @@ #include "lldb/Symbol/Type.h" #include "lldb/Target/LanguageRuntime.h" +class CommandObjectObjC_ClassTable_Dump; + namespace lldb_private { class ClangUtilityFunction; @@ -289,6 +291,48 @@ public: protected: std::unique_ptr<ClangASTContext> m_scratch_ast_ctx_ap; }; + + class ObjCExceptionPrecondition : public Breakpoint::BreakpointPrecondition + { + public: + ObjCExceptionPrecondition(); + + virtual ~ObjCExceptionPrecondition() {} + + bool EvaluatePrecondition(StoppointCallbackContext &context) override; + void DescribePrecondition(Stream &stream, lldb::DescriptionLevel level) override; + Error ConfigurePrecondition(Args &args) override; + + protected: + void AddClassName(const char *class_name); + + private: + std::unordered_set<std::string> m_class_names; + }; + + class TaggedPointerVendor + { + public: + virtual bool + IsPossibleTaggedPointer (lldb::addr_t ptr) = 0; + + virtual ObjCLanguageRuntime::ClassDescriptorSP + GetClassDescriptor (lldb::addr_t ptr) = 0; + + virtual + ~TaggedPointerVendor () { } + protected: + TaggedPointerVendor () = default; + + private: + DISALLOW_COPY_AND_ASSIGN(TaggedPointerVendor); + }; + + virtual TaggedPointerVendor* + GetTaggedPointerVendor () + { + return nullptr; + } typedef std::shared_ptr<EncodingToType> EncodingToTypeSP; @@ -313,8 +357,8 @@ public: virtual ~ObjCLanguageRuntime(); - virtual lldb::LanguageType - GetLanguageType () const + lldb::LanguageType + GetLanguageType () const override { return lldb::eLanguageTypeObjC; } @@ -515,10 +559,10 @@ public: m_negative_complete_class_cache.clear(); } - virtual bool + bool GetTypeBitSize (const ClangASTType& clang_type, - uint64_t &size); - + uint64_t &size) override; + protected: //------------------------------------------------------------------ // Classes that inherit from ObjCLanguageRuntime can see and modify these @@ -645,6 +689,14 @@ protected: ISAToDescriptorIterator GetDescriptorIterator (const ConstString &name); + friend class ::CommandObjectObjC_ClassTable_Dump; + + std::pair<ISAToDescriptorIterator,ISAToDescriptorIterator> + GetDescriptorIteratorPair (bool update_if_needed = true); + + void + ReadObjCLibraryIfNeeded (const ModuleList &module_list); + DISALLOW_COPY_AND_ASSIGN (ObjCLanguageRuntime); }; |
