AppleObjCRuntimeV1.h revision c105362e1fd33664939811569dc4a540959e7db7
1//===-- AppleObjCRuntimeV1.h ----------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_AppleObjCRuntimeV1_h_ 11#define liblldb_AppleObjCRuntimeV1_h_ 12 13// C Includes 14// C++ Includes 15// Other libraries and framework includes 16// Project includes 17#include "lldb/lldb-private.h" 18#include "lldb/Target/ObjCLanguageRuntime.h" 19#include "AppleObjCRuntime.h" 20 21namespace lldb_private { 22 23class AppleObjCRuntimeV1 : 24 public AppleObjCRuntime 25{ 26public: 27 virtual ~AppleObjCRuntimeV1() { } 28 29 // These are generic runtime functions: 30 virtual bool 31 GetDynamicTypeAndAddress (ValueObject &in_value, 32 lldb::DynamicValueType use_dynamic, 33 TypeAndOrName &class_type_or_name, 34 Address &address); 35 36 virtual ClangUtilityFunction * 37 CreateObjectChecker (const char *); 38 39 //------------------------------------------------------------------ 40 // Static Functions 41 //------------------------------------------------------------------ 42 static void 43 Initialize(); 44 45 static void 46 Terminate(); 47 48 static lldb_private::LanguageRuntime * 49 CreateInstance (Process *process, lldb::LanguageType language); 50 51 //------------------------------------------------------------------ 52 // PluginInterface protocol 53 //------------------------------------------------------------------ 54 virtual const char * 55 GetPluginName(); 56 57 virtual const char * 58 GetShortPluginName(); 59 60 virtual uint32_t 61 GetPluginVersion(); 62 63 virtual ObjCRuntimeVersions 64 GetRuntimeVersion () 65 { 66 return eAppleObjC_V1; 67 } 68 69 virtual bool 70 IsValidISA(ObjCISA isa) 71 { 72 return false; 73 } 74 75 virtual ObjCISA 76 GetISA(ValueObject& valobj) 77 { 78 return 0; 79 } 80 81 virtual ConstString 82 GetActualTypeName(ObjCISA isa) 83 { 84 return ConstString(NULL); 85 } 86 87 virtual ObjCISA 88 GetParentClass(ObjCISA isa) 89 { 90 return 0; 91 } 92 93protected: 94 virtual lldb::BreakpointSP 95 CreateExceptionBreakpoint (bool catch_bp, bool throw_bp, bool is_internal = false); 96 97private: 98 AppleObjCRuntimeV1(Process *process) : 99 lldb_private::AppleObjCRuntime (process) 100 { } // Call CreateInstance instead. 101}; 102 103} // namespace lldb_private 104 105#endif // liblldb_AppleObjCRuntimeV1_h_ 106