1 //===-- DynamicLoaderStatic.h -----------------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SOURCE_PLUGINS_DYNAMICLOADER_STATIC_DYNAMICLOADERSTATIC_H
10 #define LLDB_SOURCE_PLUGINS_DYNAMICLOADER_STATIC_DYNAMICLOADERSTATIC_H
12 #include "lldb/Target/DynamicLoader.h"
13 #include "lldb/Target/Process.h"
14 #include "lldb/Utility/FileSpec.h"
15 #include "lldb/Utility/UUID.h"
17 class DynamicLoaderStatic
: public lldb_private::DynamicLoader
{
19 DynamicLoaderStatic(lldb_private::Process
*process
);
22 static void Initialize();
24 static void Terminate();
26 static llvm::StringRef
GetPluginNameStatic() { return "static"; }
28 static llvm::StringRef
GetPluginDescriptionStatic();
30 static lldb_private::DynamicLoader
*
31 CreateInstance(lldb_private::Process
*process
, bool force
);
33 /// Called after attaching a process.
35 /// Allow DynamicLoader plug-ins to execute some code after
36 /// attaching to a process.
37 void DidAttach() override
;
39 void DidLaunch() override
;
41 lldb::ThreadPlanSP
GetStepThroughTrampolinePlan(lldb_private::Thread
&thread
,
42 bool stop_others
) override
;
44 lldb_private::Status
CanLoadImage() override
;
46 // PluginInterface protocol
47 llvm::StringRef
GetPluginName() override
{ return GetPluginNameStatic(); }
50 void LoadAllImagesAtFileAddresses();
53 #endif // LLDB_SOURCE_PLUGINS_DYNAMICLOADER_STATIC_DYNAMICLOADERSTATIC_H