54 lines · c
1//===-- DynamicLoaderStatic.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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_PLUGINS_DYNAMICLOADER_STATIC_DYNAMICLOADERSTATIC_H10#define LLDB_SOURCE_PLUGINS_DYNAMICLOADER_STATIC_DYNAMICLOADERSTATIC_H11 12#include "lldb/Target/DynamicLoader.h"13#include "lldb/Target/Process.h"14#include "lldb/Utility/FileSpec.h"15#include "lldb/Utility/UUID.h"16 17class DynamicLoaderStatic : public lldb_private::DynamicLoader {18public:19 DynamicLoaderStatic(lldb_private::Process *process);20 21 // Static Functions22 static void Initialize();23 24 static void Terminate();25 26 static llvm::StringRef GetPluginNameStatic() { return "static"; }27 28 static llvm::StringRef GetPluginDescriptionStatic();29 30 static lldb_private::DynamicLoader *31 CreateInstance(lldb_private::Process *process, bool force);32 33 /// Called after attaching a process.34 ///35 /// Allow DynamicLoader plug-ins to execute some code after36 /// attaching to a process.37 void DidAttach() override;38 39 void DidLaunch() override;40 41 lldb::ThreadPlanSP GetStepThroughTrampolinePlan(lldb_private::Thread &thread,42 bool stop_others) override;43 44 lldb_private::Status CanLoadImage() override;45 46 // PluginInterface protocol47 llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }48 49private:50 void LoadAllImagesAtFileAddresses();51};52 53#endif // LLDB_SOURCE_PLUGINS_DYNAMICLOADER_STATIC_DYNAMICLOADERSTATIC_H54