summaryrefslogtreecommitdiff
path: root/include/lldb/Target/ObjCLanguageRuntime.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Target/ObjCLanguageRuntime.h')
-rw-r--r--include/lldb/Target/ObjCLanguageRuntime.h62
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);
};