1 //===-- DynamicLoaderStatic.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_DynamicLoaderStatic_h_ 11 #define liblldb_DynamicLoaderStatic_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 #include "lldb/Target/DynamicLoader.h" 18 #include "lldb/Host/FileSpec.h" 19 #include "lldb/Core/UUID.h" 20 #include "lldb/Target/Process.h" 21 22 class DynamicLoaderStatic : public lldb_private::DynamicLoader 23 { 24 public: 25 DynamicLoaderStatic(lldb_private::Process *process); 26 27 ~DynamicLoaderStatic() override; 28 29 //------------------------------------------------------------------ 30 // Static Functions 31 //------------------------------------------------------------------ 32 static void 33 Initialize(); 34 35 static void 36 Terminate(); 37 38 static lldb_private::ConstString 39 GetPluginNameStatic(); 40 41 static const char * 42 GetPluginDescriptionStatic(); 43 44 static lldb_private::DynamicLoader * 45 CreateInstance (lldb_private::Process *process, bool force); 46 47 //------------------------------------------------------------------ 48 /// Called after attaching a process. 49 /// 50 /// Allow DynamicLoader plug-ins to execute some code after 51 /// attaching to a process. 52 //------------------------------------------------------------------ 53 void 54 DidAttach() override; 55 56 void 57 DidLaunch() override; 58 59 lldb::ThreadPlanSP 60 GetStepThroughTrampolinePlan(lldb_private::Thread &thread, 61 bool stop_others) override; 62 63 lldb_private::Error 64 CanLoadImage() override; 65 66 //------------------------------------------------------------------ 67 // PluginInterface protocol 68 //------------------------------------------------------------------ 69 lldb_private::ConstString 70 GetPluginName() override; 71 72 uint32_t 73 GetPluginVersion() override; 74 75 private: 76 void 77 LoadAllImagesAtFileAddresses (); 78 79 DISALLOW_COPY_AND_ASSIGN (DynamicLoaderStatic); 80 }; 81 82 #endif // liblldb_DynamicLoaderStatic_h_ 83