1 //===-- DynamicLoaderWasmDYLD.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_Plugins_DynamicLoaderWasmDYLD_h_ 10 #define liblldb_Plugins_DynamicLoaderWasmDYLD_h_ 11 12 #include "lldb/Target/DynamicLoader.h" 13 14 namespace lldb_private { 15 namespace wasm { 16 17 class DynamicLoaderWasmDYLD : public DynamicLoader { 18 public: 19 DynamicLoaderWasmDYLD(Process *process); 20 21 static void Initialize(); 22 static void Terminate() {} 23 24 static llvm::StringRef GetPluginNameStatic() { return "wasm-dyld"; } 25 static llvm::StringRef GetPluginDescriptionStatic(); 26 27 static DynamicLoader *CreateInstance(Process *process, bool force); 28 29 /// DynamicLoader 30 /// \{ 31 void DidAttach() override; 32 void DidLaunch() override {} 33 Status CanLoadImage() override { return Status(); } 34 lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread, 35 bool stop) override; 36 lldb::ModuleSP LoadModuleAtAddress(const lldb_private::FileSpec &file, 37 lldb::addr_t link_map_addr, 38 lldb::addr_t base_addr, 39 bool base_addr_is_offset) override; 40 41 /// \} 42 43 /// PluginInterface protocol. 44 /// \{ 45 llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } 46 /// \} 47 }; 48 49 } // namespace wasm 50 } // namespace lldb_private 51 52 #endif // liblldb_Plugins_DynamicLoaderWasmDYLD_h_ 53