1//===-- JITLoaderList.h -----------------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef liblldb_JITLoaderList_h_ 10#define liblldb_JITLoaderList_h_ 11 12#include <mutex> 13#include <vector> 14 15#include "lldb/lldb-forward.h" 16 17namespace lldb_private { 18 19/// \class JITLoaderList JITLoaderList.h "lldb/Target/JITLoaderList.h" 20/// 21/// Class used by the Process to hold a list of its JITLoaders. 22class JITLoaderList { 23public: 24 JITLoaderList(); 25 ~JITLoaderList(); 26 27 void Append(const lldb::JITLoaderSP &jit_loader_sp); 28 29 void Remove(const lldb::JITLoaderSP &jit_loader_sp); 30 31 size_t GetSize() const; 32 33 lldb::JITLoaderSP GetLoaderAtIndex(size_t idx); 34 35 void DidLaunch(); 36 37 void DidAttach(); 38 39 void ModulesDidLoad(ModuleList &module_list); 40 41private: 42 std::vector<lldb::JITLoaderSP> m_jit_loaders_vec; 43 std::recursive_mutex m_jit_loaders_mutex; 44}; 45 46} // namespace lldb_private 47 48#endif // liblldb_JITLoaderList_h_ 49