AppleObjCRuntimeV1.h revision 10de7d1db3ec782ea2ccda1f39c0a40b9c301594
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/LanguageRuntime.h" 19#include "lldb/Target/ObjCLanguageRuntime.h" 20#include "lldb/Core/ValueObject.h" 21#include "AppleObjCRuntime.h" 22#include "AppleObjCTrampolineHandler.h" 23#include "AppleThreadPlanStepThroughObjCTrampoline.h" 24 25namespace lldb_private { 26 27class AppleObjCRuntimeV1 : 28 public AppleObjCRuntime 29{ 30public: 31 ~AppleObjCRuntimeV1() { } 32 33 // These are generic runtime functions: 34 virtual bool 35 GetDynamicTypeAndAddress (ValueObject &in_value, 36 lldb::DynamicValueType use_dynamic, 37 TypeAndOrName &class_type_or_name, 38 Address &address); 39 40 virtual ClangUtilityFunction * 41 CreateObjectChecker (const char *); 42 43 //------------------------------------------------------------------ 44 // Static Functions 45 //------------------------------------------------------------------ 46 static void 47 Initialize(); 48 49 static void 50 Terminate(); 51 52 static lldb_private::LanguageRuntime * 53 CreateInstance (Process *process, lldb::LanguageType language); 54 55 //------------------------------------------------------------------ 56 // PluginInterface protocol 57 //------------------------------------------------------------------ 58 virtual const char * 59 GetPluginName(); 60 61 virtual const char * 62 GetShortPluginName(); 63 64 virtual uint32_t 65 GetPluginVersion(); 66 67 virtual void 68 SetExceptionBreakpoints (); 69 70 virtual ObjCRuntimeVersions 71 GetRuntimeVersion () 72 { 73 return eAppleObjC_V1; 74 } 75protected: 76 77private: 78 AppleObjCRuntimeV1(Process *process) : 79 lldb_private::AppleObjCRuntime (process) 80 { } // Call CreateInstance instead. 81}; 82 83} // namespace lldb_private 84 85#endif // liblldb_AppleObjCRuntimeV1_h_ 86