]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/lldb/Target/JITLoaderList.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / include / lldb / Target / JITLoaderList.h
1 //===-- JITLoaderList.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_JITLoaderList_h_
11 #define liblldb_JITLoaderList_h_
12
13 #include <mutex>
14 #include <vector>
15
16 #include "lldb/lldb-forward.h"
17
18 namespace lldb_private {
19
20 //----------------------------------------------------------------------
21 /// @class JITLoaderList JITLoaderList.h "lldb/Target/JITLoaderList.h"
22 ///
23 /// Class used by the Process to hold a list of its JITLoaders.
24 //----------------------------------------------------------------------
25 class JITLoaderList {
26 public:
27   JITLoaderList();
28   ~JITLoaderList();
29
30   void Append(const lldb::JITLoaderSP &jit_loader_sp);
31
32   void Remove(const lldb::JITLoaderSP &jit_loader_sp);
33
34   size_t GetSize() const;
35
36   lldb::JITLoaderSP GetLoaderAtIndex(size_t idx);
37
38   void DidLaunch();
39
40   void DidAttach();
41
42   void ModulesDidLoad(ModuleList &module_list);
43
44 private:
45   std::vector<lldb::JITLoaderSP> m_jit_loaders_vec;
46   std::recursive_mutex m_jit_loaders_mutex;
47 };
48
49 } // namespace lldb_private
50
51 #endif // liblldb_JITLoaderList_h_