]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / DynamicLoader / Static / DynamicLoaderStatic.h
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 #include "lldb/Target/DynamicLoader.h"
14 #include "lldb/Target/Process.h"
15 #include "lldb/Utility/FileSpec.h"
16 #include "lldb/Utility/UUID.h"
17
18 class DynamicLoaderStatic : public lldb_private::DynamicLoader {
19 public:
20   DynamicLoaderStatic(lldb_private::Process *process);
21
22   ~DynamicLoaderStatic() override;
23
24   //------------------------------------------------------------------
25   // Static Functions
26   //------------------------------------------------------------------
27   static void Initialize();
28
29   static void Terminate();
30
31   static lldb_private::ConstString GetPluginNameStatic();
32
33   static const char *GetPluginDescriptionStatic();
34
35   static lldb_private::DynamicLoader *
36   CreateInstance(lldb_private::Process *process, bool force);
37
38   //------------------------------------------------------------------
39   /// Called after attaching a process.
40   ///
41   /// Allow DynamicLoader plug-ins to execute some code after
42   /// attaching to a process.
43   //------------------------------------------------------------------
44   void DidAttach() override;
45
46   void DidLaunch() override;
47
48   lldb::ThreadPlanSP GetStepThroughTrampolinePlan(lldb_private::Thread &thread,
49                                                   bool stop_others) override;
50
51   lldb_private::Status CanLoadImage() override;
52
53   //------------------------------------------------------------------
54   // PluginInterface protocol
55   //------------------------------------------------------------------
56   lldb_private::ConstString GetPluginName() override;
57
58   uint32_t GetPluginVersion() override;
59
60 private:
61   void LoadAllImagesAtFileAddresses();
62
63   DISALLOW_COPY_AND_ASSIGN(DynamicLoaderStatic);
64 };
65
66 #endif // liblldb_DynamicLoaderStatic_h_