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
14namespace lldb_private {
15namespace wasm {
16
17class DynamicLoaderWasmDYLD : public DynamicLoader {
18public:
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

source code of lldb/source/Plugins/DynamicLoader/wasm-DYLD/DynamicLoaderWasmDYLD.h