1 //===-- OperatingSystemPython.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 #ifndef LLDB_DISABLE_PYTHON 10 11 #ifndef liblldb_OperatingSystemPython_h_ 12 #define liblldb_OperatingSystemPython_h_ 13 14 // C Includes 15 // C++ Includes 16 // Other libraries and framework includes 17 #include "lldb/Target/OperatingSystem.h" 18 19 class DynamicRegisterInfo; 20 21 class OperatingSystemPython : public lldb_private::OperatingSystem 22 { 23 public: 24 //------------------------------------------------------------------ 25 // Static Functions 26 //------------------------------------------------------------------ 27 static lldb_private::OperatingSystem * 28 CreateInstance (lldb_private::Process *process, bool force); 29 30 static void 31 Initialize(); 32 33 static void 34 Terminate(); 35 36 static const char * 37 GetPluginNameStatic(); 38 39 static const char * 40 GetPluginDescriptionStatic(); 41 42 //------------------------------------------------------------------ 43 // Class Methods 44 //------------------------------------------------------------------ 45 OperatingSystemPython (lldb_private::Process *process); 46 47 virtual 48 ~OperatingSystemPython (); 49 50 //------------------------------------------------------------------ 51 // lldb_private::PluginInterface Methods 52 //------------------------------------------------------------------ 53 virtual const char * 54 GetPluginName(); 55 56 virtual const char * 57 GetShortPluginName(); 58 59 virtual uint32_t 60 GetPluginVersion(); 61 62 //------------------------------------------------------------------ 63 // lldb_private::OperatingSystem Methods 64 //------------------------------------------------------------------ 65 virtual bool 66 UpdateThreadList (lldb_private::ThreadList &old_thread_list, 67 lldb_private::ThreadList &new_thread_list); 68 69 virtual void 70 ThreadWasSelected (lldb_private::Thread *thread); 71 72 virtual lldb::RegisterContextSP 73 CreateRegisterContextForThread (lldb_private::Thread *thread); 74 75 virtual lldb::StopInfoSP 76 CreateThreadStopReason (lldb_private::Thread *thread); 77 78 protected: 79 80 DynamicRegisterInfo * 81 GetDynamicRegisterInfo (); 82 83 lldb::ValueObjectSP m_thread_list_valobj_sp; 84 std::auto_ptr<DynamicRegisterInfo> m_register_info_ap; 85 86 }; 87 88 #endif // #ifndef liblldb_OperatingSystemPython_h_ 89 #endif // #ifndef LLDB_DISABLE_PYTHON 90