1 //===-- DynamicLoaderStatic.h -----------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_DynamicLoaderStatic_h_
11 #define liblldb_DynamicLoaderStatic_h_
13 #include "lldb/Target/DynamicLoader.h"
14 #include "lldb/Target/Process.h"
15 #include "lldb/Utility/FileSpec.h"
16 #include "lldb/Utility/UUID.h"
18 class DynamicLoaderStatic : public lldb_private::DynamicLoader {
20 DynamicLoaderStatic(lldb_private::Process *process);
22 ~DynamicLoaderStatic() override;
24 //------------------------------------------------------------------
26 //------------------------------------------------------------------
27 static void Initialize();
29 static void Terminate();
31 static lldb_private::ConstString GetPluginNameStatic();
33 static const char *GetPluginDescriptionStatic();
35 static lldb_private::DynamicLoader *
36 CreateInstance(lldb_private::Process *process, bool force);
38 //------------------------------------------------------------------
39 /// Called after attaching a process.
41 /// Allow DynamicLoader plug-ins to execute some code after
42 /// attaching to a process.
43 //------------------------------------------------------------------
44 void DidAttach() override;
46 void DidLaunch() override;
48 lldb::ThreadPlanSP GetStepThroughTrampolinePlan(lldb_private::Thread &thread,
49 bool stop_others) override;
51 lldb_private::Status CanLoadImage() override;
53 //------------------------------------------------------------------
54 // PluginInterface protocol
55 //------------------------------------------------------------------
56 lldb_private::ConstString GetPluginName() override;
58 uint32_t GetPluginVersion() override;
61 void LoadAllImagesAtFileAddresses();
63 DISALLOW_COPY_AND_ASSIGN(DynamicLoaderStatic);
66 #endif // liblldb_DynamicLoaderStatic_h_