|
|
|||
File indexing completed on 2026-05-10 08:42:53
0001 //===-- JITLoader.h ---------------------------------------------*- C++ -*-===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 0009 #ifndef LLDB_TARGET_JITLOADER_H 0010 #define LLDB_TARGET_JITLOADER_H 0011 0012 #include <vector> 0013 0014 #include "lldb/Core/PluginInterface.h" 0015 #include "lldb/Target/JITLoaderList.h" 0016 0017 namespace lldb_private { 0018 0019 /// \class JITLoader JITLoader.h "lldb/Target/JITLoader.h" 0020 /// A plug-in interface definition class for JIT loaders. 0021 /// 0022 /// Plugins of this kind listen for code generated at runtime in the target. 0023 /// They are very similar to dynamic loader, with the difference that they do 0024 /// not have information about the target's dyld and that there may be 0025 /// multiple JITLoader plugins per process, while there is at most one 0026 /// DynamicLoader. 0027 class JITLoader : public PluginInterface { 0028 public: 0029 /// Find a JIT loader plugin for a given process. 0030 /// 0031 /// Scans the installed DynamicLoader plug-ins and tries to find all 0032 /// applicable instances for the current process. 0033 /// 0034 /// \param[in] process 0035 /// The process for which to try and locate a JIT loader 0036 /// plug-in instance. 0037 /// 0038 static void LoadPlugins(Process *process, lldb_private::JITLoaderList &list); 0039 0040 /// Construct with a process. 0041 JITLoader(Process *process); 0042 0043 ~JITLoader() override; 0044 0045 /// Called after attaching a process. 0046 /// 0047 /// Allow JITLoader plug-ins to execute some code after attaching to a 0048 /// process. 0049 virtual void DidAttach() = 0; 0050 0051 /// Called after launching a process. 0052 /// 0053 /// Allow JITLoader plug-ins to execute some code after the process has 0054 /// stopped for the first time on launch. 0055 virtual void DidLaunch() = 0; 0056 0057 /// Called after a new shared object has been loaded so that it can be 0058 /// probed for JIT entry point hooks. 0059 virtual void ModulesDidLoad(lldb_private::ModuleList &module_list) = 0; 0060 0061 protected: 0062 // Member variables. 0063 Process *m_process; 0064 }; 0065 0066 } // namespace lldb_private 0067 0068 #endif // LLDB_TARGET_JITLOADER_H
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|