//===-- DynamicLoader.h -----------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_TARGET_DYNAMICLOADER_H #define LLDB_TARGET_DYNAMICLOADER_H #include "lldb/Core/Address.h" #include "lldb/Core/PluginInterface.h" #include "lldb/Utility/FileSpec.h" #include "lldb/Utility/Status.h" #include "lldb/Utility/UUID.h" #include "lldb/lldb-defines.h" #include "lldb/lldb-forward.h" #include "lldb/lldb-private-enumerations.h" #include "lldb/lldb-types.h" #include <cstddef> #include <cstdint> namespace lldb_private { class ModuleList; class Process; class SectionList; class Symbol; class SymbolContext; class SymbolContextList; class Thread; } namespace lldb_private { /// \class DynamicLoader DynamicLoader.h "lldb/Target/DynamicLoader.h" /// A plug-in interface definition class for dynamic loaders. /// /// Dynamic loader plug-ins track image (shared library) loading and /// unloading. The class is initialized given a live process that is halted at /// its entry point or just after attaching. /// /// Dynamic loader plug-ins can track the process by registering callbacks /// using the: Process::RegisterNotificationCallbacks (const Notifications&) /// function. /// /// Breakpoints can also be set in the process which can register functions /// that get called using: Process::BreakpointSetCallback (lldb::user_id_t, /// BreakpointHitCallback, void *). These breakpoint callbacks return a /// boolean value that indicates if the process should continue or halt and /// should return the global setting for this using: /// DynamicLoader::StopWhenImagesChange() const. class DynamicLoader : public PluginInterface { … }; } // namespace lldb_private #endif // LLDB_TARGET_DYNAMICLOADER_H