brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 8b1c3c3 Raw
55 lines · c
1//===-- DynamicLoaderWindowsDYLD.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_WINDOWS_DYLD_DYNAMICLOADERWINDOWSDYLD_H10#define LLDB_SOURCE_PLUGINS_DYNAMICLOADER_WINDOWS_DYLD_DYNAMICLOADERWINDOWSDYLD_H11 12#include "lldb/Target/DynamicLoader.h"13#include "lldb/lldb-forward.h"14 15#include <map>16 17namespace lldb_private {18 19class DynamicLoaderWindowsDYLD : public DynamicLoader {20public:21  DynamicLoaderWindowsDYLD(Process *process);22 23  ~DynamicLoaderWindowsDYLD() override;24 25  static void Initialize();26  static void Terminate();27  static llvm::StringRef GetPluginNameStatic() { return "windows-dyld"; }28  static llvm::StringRef GetPluginDescriptionStatic();29 30  static DynamicLoader *CreateInstance(Process *process, bool force);31 32  void OnLoadModule(lldb::ModuleSP module_sp, const ModuleSpec module_spec,33                    lldb::addr_t module_addr);34  void OnUnloadModule(lldb::addr_t module_addr);35 36  void DidAttach() override;37  void DidLaunch() override;38  Status CanLoadImage() override;39  lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread,40                                                  bool stop) override;41 42  llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }43 44protected:45  lldb::addr_t GetLoadAddress(lldb::ModuleSP executable);46 47private:48  std::map<lldb::ModuleWP, lldb::addr_t, std::owner_less<lldb::ModuleWP>>49      m_loaded_modules;50};51 52} // namespace lldb_private53 54#endif // LLDB_SOURCE_PLUGINS_DYNAMICLOADER_WINDOWS_DYLD_DYNAMICLOADERWINDOWSDYLD_H55