LLDB  mainline
DynamicLoaderDarwinKernel.h
Go to the documentation of this file.
1 //===-- DynamicLoaderDarwinKernel.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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_PLUGINS_DYNAMICLOADER_DARWIN_KERNEL_DYNAMICLOADERDARWINKERNEL_H
10 #define LLDB_SOURCE_PLUGINS_DYNAMICLOADER_DARWIN_KERNEL_DYNAMICLOADERDARWINKERNEL_H
11 
12 #include <mutex>
13 #include <string>
14 #include <vector>
15 
16 
17 #include "lldb/Host/SafeMachO.h"
18 
20 #include "lldb/Target/Process.h"
21 #include "lldb/Utility/FileSpec.h"
22 #include "lldb/Utility/UUID.h"
23 
25 public:
27  lldb::addr_t kernel_addr);
28 
29  ~DynamicLoaderDarwinKernel() override;
30 
31  // Static Functions
32  static void Initialize();
33 
34  static void Terminate();
35 
37 
38  static const char *GetPluginDescriptionStatic();
39 
41  CreateInstance(lldb_private::Process *process, bool force);
42 
43  static void DebuggerInitialize(lldb_private::Debugger &debugger);
44 
46 
47  /// Called after attaching a process.
48  ///
49  /// Allow DynamicLoader plug-ins to execute some code after
50  /// attaching to a process.
51  void DidAttach() override;
52 
53  void DidLaunch() override;
54 
55  lldb::ThreadPlanSP GetStepThroughTrampolinePlan(lldb_private::Thread &thread,
56  bool stop_others) override;
57 
59 
60  // PluginInterface protocol
61  llvm::StringRef GetPluginName() override {
63  }
64 
65 protected:
67 
69  lldb::StateType state);
70 
71  void UpdateIfNeeded();
72 
74 
75  void Clear(bool clear_process);
76 
77  void PutToLog(lldb_private::Log *log) const;
78 
79  static bool
80  BreakpointHitCallback(void *baton,
82  lldb::user_id_t break_id, lldb::user_id_t break_loc_id);
83 
85  lldb::user_id_t break_id, lldb::user_id_t break_loc_id);
87 
89 
90  enum {
92  // Versions less than 2 didn't have an entry size,
93  // they had a 64 bit name, 16 byte UUID, 8 byte addr,
94  // 8 byte size, 8 byte version, 4 byte load tag, and
95  // 4 byte flags
96  KERNEL_MODULE_ENTRY_SIZE_VERSION_1 = 64u + 16u + 8u + 8u + 8u + 4u + 4u
97  };
98 
99  // class KextImageInfo represents a single kext or kernel binary image.
100  // The class was designed to hold the information from the
101  // OSKextLoadedKextSummary
102  // structure (in libkern/libkern/OSKextLibPrivate.h from xnu). The kernel
103  // maintains
104  // a list of loded kexts in memory (the OSKextLoadedKextSummaryHeader
105  // structure,
106  // which points to an array of OSKextLoadedKextSummary's).
107  //
108  // A KextImageInfos may have -
109  //
110  // 1. The load address, name, UUID, and size of a kext/kernel binary in memory
111  // (read straight out of the kernel's list-of-kexts loaded)
112  // 2. A ModuleSP based on a MemoryModule read out of the kernel's memory
113  // (very unlikely to have any symbolic information)
114  // 3. A ModuleSP for an on-disk copy of the kext binary, possibly with debug
115  // info
116  // or a dSYM
117  //
118  // For performance reasons, the developer may prefer that lldb not load the
119  // kexts out
120  // of memory at the start of a kernel session. But we should build up /
121  // maintain a
122  // list of kexts that the kernel has told us about so we can relocate a kext
123  // module
124  // later if the user explicitly adds it to the target.
125 
127  public:
129 
130  void Clear() {
132  m_size = 0;
133  m_name.clear();
134  m_uuid.Clear();
135  m_module_sp.reset();
136  m_memory_module_sp.reset();
138  }
139 
141 
143 
145 
146  void SetLoadAddress(
147  lldb::addr_t load_addr); // Address of the Mach-O header for this binary
148 
150  GetLoadAddress() const; // Address of the Mach-O header for this binary
151 
152  lldb_private::UUID GetUUID() const;
153 
154  void SetUUID(const lldb_private::UUID &uuid);
155 
156  void SetName(const char *);
157 
158  std::string GetName() const;
159 
160  void SetModule(lldb::ModuleSP module);
161 
162  lldb::ModuleSP GetModule();
163 
164  // try to fill in m_memory_module_sp from memory based on the m_load_address
166 
167  bool IsKernel()
168  const; // true if this is the mach_kernel; false if this is a kext
169 
170  void SetIsKernel(bool is_kernel);
171 
172  uint64_t GetSize() const;
173 
174  void SetSize(uint64_t size);
175 
176  uint32_t
177  GetProcessStopId() const; // the stop-id when this binary was first noticed
178 
179  void SetProcessStopId(uint32_t stop_id);
180 
181  bool operator==(const KextImageInfo &rhs);
182 
183  uint32_t GetAddressByteSize(); // as determined by Mach-O header
184 
185  lldb::ByteOrder GetByteOrder(); // as determined by Mach-O header
186 
188  GetArchitecture() const; // as determined by Mach-O header
189 
190  void PutToLog(lldb_private::Log *log) const;
191 
192  typedef std::vector<KextImageInfo> collection;
193  typedef collection::iterator iterator;
194  typedef collection::const_iterator const_iterator;
195 
196  private:
198  lldb::ModuleSP m_module_sp;
199  lldb::ModuleSP m_memory_module_sp;
201  UINT32_MAX; // the stop-id when this module was added
202  // to the Target
204  m_uuid; // UUID for this dylib if it has one, else all zeros
206  uint64_t m_size = 0;
208  false; // true if this is the kernel, false if this is a kext
209  };
210 
216 
217  OSKextLoadedKextSummaryHeader() = default;
218 
220  switch (version) {
221  case 0:
222  return 0; // Can't know the size without a valid version
223  case 1:
224  return 8; // Version 1 only had a version + entry_count
225  default:
226  break;
227  }
228  // Version 2 and above has version, entry_size, entry_count, and reserved
229  return 16;
230  }
231 
232  void Clear() {
233  version = 0;
234  entry_size = 0;
235  entry_count = 0;
237  }
238 
239  bool IsValid() const { return version >= 1 && version <= 2; }
240  };
241 
243 
245 
247 
248  bool ReadAllKextSummaries();
249 
250  bool ReadKextSummaryHeader();
251 
252  bool ParseKextSummaries(const lldb_private::Address &kext_summary_addr,
253  uint32_t count);
254 
255  void
257  uint32_t infos_count,
258  bool update_executable);
259 
260  uint32_t ReadKextSummaries(const lldb_private::Address &kext_summary_addr,
261  uint32_t image_infos_count,
262  KextImageInfo::collection &image_infos);
263 
264  static lldb::addr_t
266 
267  static lldb::addr_t
269 
271 
272  static lldb::addr_t
274 
275  static bool
276  ReadMachHeader(lldb::addr_t addr, lldb_private::Process *process, llvm::MachO::mach_header &mh,
277  bool *read_error = nullptr);
278 
279  static lldb_private::UUID
281  lldb_private::Process *process,
282  bool *read_error = nullptr);
283 
285  KextImageInfo m_kernel; // Info about the current kernel image being used
286 
291  mutable std::recursive_mutex m_mutex;
293 
294 private:
297  operator=(const DynamicLoaderDarwinKernel &) = delete;
298 };
299 
300 #endif // LLDB_SOURCE_PLUGINS_DYNAMICLOADER_DARWIN_KERNEL_DYNAMICLOADERDARWINKERNEL_H
DynamicLoaderDarwinKernel::KextImageInfo::collection
std::vector< KextImageInfo > collection
Definition: DynamicLoaderDarwinKernel.h:192
lldb_private::UUID
Definition: UUID.h:23
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader
Definition: DynamicLoaderDarwinKernel.h:211
DynamicLoaderDarwinKernel::KextImageInfo::SetModule
void SetModule(lldb::ModuleSP module)
Definition: DynamicLoaderDarwinKernel.cpp:573
DynamicLoaderDarwinKernel::GetPluginNameStatic
static lldb_private::ConstString GetPluginNameStatic()
Definition: DynamicLoaderDarwinKernel.cpp:1551
lldb_private::ArchSpec
Definition: ArchSpec.h:33
lldb_private::StoppointCallbackContext
General Outline: When we hit a breakpoint we need to package up whatever information is needed to eva...
Definition: StoppointCallbackContext.h:26
DynamicLoaderDarwinKernel::SearchForKernelWithDebugHints
static lldb::addr_t SearchForKernelWithDebugHints(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:237
DynamicLoaderDarwinKernel::KextImageInfo::GetProcessStopId
uint32_t GetProcessStopId() const
Definition: DynamicLoaderDarwinKernel.cpp:606
DynamicLoaderDarwinKernel::KextImageInfo::PutToLog
void PutToLog(lldb_private::Log *log) const
Definition: DynamicLoaderDarwinKernel.cpp:1421
DynamicLoaderDarwinKernel::DebuggerInitialize
static void DebuggerInitialize(lldb_private::Debugger &debugger)
Definition: DynamicLoaderDarwinKernel.cpp:1539
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::entry_size
uint32_t entry_size
Definition: DynamicLoaderDarwinKernel.h:213
DynamicLoaderDarwinKernel::KextImageInfo::m_kernel_image
bool m_kernel_image
Definition: DynamicLoaderDarwinKernel.h:207
DynamicLoaderDarwinKernel::m_kext_summary_header
OSKextLoadedKextSummaryHeader m_kext_summary_header
Definition: DynamicLoaderDarwinKernel.h:289
DynamicLoaderDarwinKernel::m_mutex
std::recursive_mutex m_mutex
Definition: DynamicLoaderDarwinKernel.h:291
DynamicLoaderDarwinKernel::m_kernel_load_address
lldb::addr_t m_kernel_load_address
Definition: DynamicLoaderDarwinKernel.h:284
UUID.h
DynamicLoaderDarwinKernel::KextImageInfo::m_name
std::string m_name
Definition: DynamicLoaderDarwinKernel.h:197
DynamicLoaderDarwinKernel::operator=
const DynamicLoaderDarwinKernel & operator=(const DynamicLoaderDarwinKernel &)=delete
DynamicLoaderDarwinKernel::KextImageInfo::GetUUID
lldb_private::UUID GetUUID() const
Definition: DynamicLoaderDarwinKernel.cpp:636
DynamicLoaderDarwinKernel::m_kernel
KextImageInfo m_kernel
Definition: DynamicLoaderDarwinKernel.h:285
DynamicLoaderDarwinKernel::KextImageInfo::GetModule
lldb::ModuleSP GetModule()
Definition: DynamicLoaderDarwinKernel.cpp:585
DynamicLoaderDarwinKernel::KextImageInfo::m_load_address
lldb::addr_t m_load_address
Definition: DynamicLoaderDarwinKernel.h:205
lldb_private::Process
Definition: Process.h:340
DynamicLoaderDarwinKernel::SearchForDarwinKernel
static lldb::addr_t SearchForDarwinKernel(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:188
DynamicLoaderDarwinKernel::m_known_kexts
KextImageInfo::collection m_known_kexts
Definition: DynamicLoaderDarwinKernel.h:290
DynamicLoaderDarwinKernel::KextImageInfo::SetName
void SetName(const char *)
Definition: DynamicLoaderDarwinKernel.cpp:624
DynamicLoaderDarwinKernel::KextImageInfo::iterator
collection::iterator iterator
Definition: DynamicLoaderDarwinKernel.h:193
DynamicLoaderDarwinKernel::RegisterNotificationCallbacks
void RegisterNotificationCallbacks()
DynamicLoaderDarwinKernel::PrivateProcessStateChanged
void PrivateProcessStateChanged(lldb_private::Process *process, lldb::StateType state)
Definition: DynamicLoaderDarwinKernel.cpp:1486
DynamicLoaderDarwinKernel::KextImageInfo::m_memory_module_sp
lldb::ModuleSP m_memory_module_sp
Definition: DynamicLoaderDarwinKernel.h:199
DynamicLoaderDarwinKernel::SearchForKernelAtSameLoadAddr
static lldb::addr_t SearchForKernelAtSameLoadAddr(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:209
DynamicLoaderDarwinKernel::KextImageInfo::GetSize
uint64_t GetSize() const
Definition: DynamicLoaderDarwinKernel.cpp:598
DynamicLoaderDarwinKernel::ParseKextSummaries
bool ParseKextSummaries(const lldb_private::Address &kext_summary_addr, uint32_t count)
Definition: DynamicLoaderDarwinKernel.cpp:1158
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
DynamicLoaderDarwinKernel::Clear
void Clear(bool clear_process)
Definition: DynamicLoaderDarwinKernel.cpp:545
DynamicLoaderDarwinKernel::CreateInstance
static lldb_private::DynamicLoader * CreateInstance(lldb_private::Process *process, bool force)
Definition: DynamicLoaderDarwinKernel.cpp:135
Process.h
DynamicLoaderDarwinKernel::KextImageInfo::IsKernel
bool IsKernel() const
Definition: DynamicLoaderDarwinKernel.cpp:740
DynamicLoaderDarwinKernel::KextImageInfo::GetArchitecture
lldb_private::ArchSpec GetArchitecture() const
Definition: DynamicLoaderDarwinKernel.cpp:966
SafeMachO.h
DynamicLoaderDarwinKernel::UpdateIfNeeded
void UpdateIfNeeded()
Definition: DynamicLoaderDarwinKernel.cpp:522
DynamicLoaderDarwinKernel::KextImageInfo::IsLoaded
bool IsLoaded()
Definition: DynamicLoaderDarwinKernel.h:144
DynamicLoaderDarwinKernel::DynamicLoaderDarwinKernel
DynamicLoaderDarwinKernel(lldb_private::Process *process, lldb::addr_t kernel_addr)
Definition: DynamicLoaderDarwinKernel.cpp:506
lldb_private::ConstString::GetStringRef
llvm::StringRef GetStringRef() const
Get the string value as a llvm::StringRef.
Definition: ConstString.h:202
DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule
bool LoadImageUsingMemoryModule(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:748
lldb_private::Thread
Definition: Thread.h:60
DynamicLoaderDarwinKernel::GetPluginName
llvm::StringRef GetPluginName() override
Definition: DynamicLoaderDarwinKernel.h:61
DynamicLoaderDarwinKernel::KextImageInfo::m_size
uint64_t m_size
Definition: DynamicLoaderDarwinKernel.h:206
DynamicLoaderDarwinKernel::BreakpointHitCallback
static bool BreakpointHitCallback(void *baton, lldb_private::StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
Definition: DynamicLoaderDarwinKernel.cpp:1055
DynamicLoaderDarwinKernel
Definition: DynamicLoaderDarwinKernel.h:24
DynamicLoaderDarwinKernel::CanLoadImage
lldb_private::Status CanLoadImage() override
Ask if it is ok to try and load or unload an shared library (image).
Definition: DynamicLoaderDarwinKernel.cpp:1522
DynamicLoaderDarwinKernel::~DynamicLoaderDarwinKernel
~DynamicLoaderDarwinKernel() override
Definition: DynamicLoaderDarwinKernel.cpp:520
lldb_private::ConstString
Definition: ConstString.h:40
DynamicLoaderDarwinKernel::KextImageInfo::const_iterator
collection::const_iterator const_iterator
Definition: DynamicLoaderDarwinKernel.h:194
DynamicLoaderDarwinKernel::KextImageInfo
Definition: DynamicLoaderDarwinKernel.h:126
DynamicLoaderDarwinKernel::KextImageInfo::ReadMemoryModule
bool ReadMemoryModule(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:646
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::version
uint32_t version
Definition: DynamicLoaderDarwinKernel.h:212
DynamicLoaderDarwinKernel::GetStepThroughTrampolinePlan
lldb::ThreadPlanSP GetStepThroughTrampolinePlan(lldb_private::Thread &thread, bool stop_others) override
Provides a plan to step through the dynamic loader trampoline for the current state of thread.
Definition: DynamicLoaderDarwinKernel.cpp:1514
lldb_private::DynamicLoader
Definition: DynamicLoader.h:52
DynamicLoaderDarwinKernel::KextImageInfo::GetName
std::string GetName() const
Definition: DynamicLoaderDarwinKernel.cpp:628
DynamicLoaderDarwinKernel::KextImageInfo::LoadImageAtFileAddress
bool LoadImageAtFileAddress(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:560
DynamicLoaderDarwinKernel::PrivateInitialize
void PrivateInitialize(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:1454
lldb_private::Debugger
Definition: Debugger.h:70
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::OSKextLoadedKextSummaryHeader
OSKextLoadedKextSummaryHeader()=default
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition: Plugins/CMakeLists.txt:40
DynamicLoaderDarwinKernel::KextImageInfo::SetLoadAddress
void SetLoadAddress(lldb::addr_t load_addr)
Definition: DynamicLoaderDarwinKernel.cpp:589
DynamicLoaderDarwinKernel::KextImageInfo::m_uuid
lldb_private::UUID m_uuid
Definition: DynamicLoaderDarwinKernel.h:204
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::entry_count
uint32_t entry_count
Definition: DynamicLoaderDarwinKernel.h:214
DynamicLoaderDarwinKernel::KextImageInfo::SetUUID
void SetUUID(const lldb_private::UUID &uuid)
Definition: DynamicLoaderDarwinKernel.cpp:632
DynamicLoaderDarwinKernel::ReadMachHeader
static bool ReadMachHeader(lldb::addr_t addr, lldb_private::Process *process, llvm::MachO::mach_header &mh, bool *read_error=nullptr)
Definition: DynamicLoaderDarwinKernel.cpp:391
DynamicLoaderDarwinKernel::SetNotificationBreakpointIfNeeded
void SetNotificationBreakpointIfNeeded()
Definition: DynamicLoaderDarwinKernel.cpp:1461
DynamicLoaderDarwinKernel::GetByteOrderFromMagic
static lldb::ByteOrder GetByteOrderFromMagic(uint32_t magic)
Definition: DynamicLoaderDarwinKernel.cpp:1562
DynamicLoaderDarwinKernel::KextImageInfo::SetProcessStopId
void SetProcessStopId(uint32_t stop_id)
Definition: DynamicLoaderDarwinKernel.cpp:610
DynamicLoaderDarwinKernel::ReadKextSummaries
uint32_t ReadKextSummaries(const lldb_private::Address &kext_summary_addr, uint32_t image_infos_count, KextImageInfo::collection &image_infos)
Definition: DynamicLoaderDarwinKernel.cpp:1359
lldb_private::UUID::Clear
void Clear()
Definition: UUID.h:72
DynamicLoaderDarwinKernel::KextImageInfo::SetIsKernel
void SetIsKernel(bool is_kernel)
Definition: DynamicLoaderDarwinKernel.cpp:744
DynamicLoaderDarwinKernel::KextImageInfo::Clear
void Clear()
Definition: DynamicLoaderDarwinKernel.h:130
DynamicLoaderDarwinKernel::CheckForKernelImageAtAddress
static lldb_private::UUID CheckForKernelImageAtAddress(lldb::addr_t addr, lldb_private::Process *process, bool *read_error=nullptr)
Definition: DynamicLoaderDarwinKernel.cpp:434
DynamicLoaderDarwinKernel::KextImageInfo::SetSize
void SetSize(uint64_t size)
Definition: DynamicLoaderDarwinKernel.cpp:602
DynamicLoaderDarwinKernel::KERNEL_MODULE_MAX_NAME
@ KERNEL_MODULE_MAX_NAME
Definition: DynamicLoaderDarwinKernel.h:91
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::IsValid
bool IsValid() const
Definition: DynamicLoaderDarwinKernel.h:239
lldb_private::Status
Definition: Status.h:44
DynamicLoaderDarwinKernel::Terminate
static void Terminate()
Definition: DynamicLoaderDarwinKernel.cpp:1535
uint32_t
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::GetSize
uint32_t GetSize()
Definition: DynamicLoaderDarwinKernel.h:219
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::image_infos_addr
lldb::addr_t image_infos_addr
Definition: DynamicLoaderDarwinKernel.h:215
DynamicLoaderDarwinKernel::KextImageInfo::KextImageInfo
KextImageInfo()
Definition: DynamicLoaderDarwinKernel.h:128
DynamicLoaderDarwinKernel::BreakpointHit
bool BreakpointHit(lldb_private::StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
Definition: DynamicLoaderDarwinKernel.cpp:1062
DynamicLoaderDarwinKernel::UpdateImageInfosHeaderAndLoadCommands
void UpdateImageInfosHeaderAndLoadCommands(KextImageInfo::collection &image_infos, uint32_t infos_count, bool update_executable)
lldb_private::Address
Definition: Address.h:59
DynamicLoaderDarwinKernel::KextImageInfo::m_module_sp
lldb::ModuleSP m_module_sp
Definition: DynamicLoaderDarwinKernel.h:198
DynamicLoaderDarwinKernel::PutToLog
void PutToLog(lldb_private::Log *log) const
Definition: DynamicLoaderDarwinKernel.cpp:1433
DynamicLoaderDarwinKernel::ReadAllKextSummaries
bool ReadAllKextSummaries()
Definition: DynamicLoaderDarwinKernel.cpp:1402
DynamicLoaderDarwinKernel::m_kext_summary_header_ptr_addr
lldb_private::Address m_kext_summary_header_ptr_addr
Definition: DynamicLoaderDarwinKernel.h:287
DynamicLoaderDarwinKernel::ReadKextSummaryHeader
bool ReadKextSummaryHeader()
Definition: DynamicLoaderDarwinKernel.cpp:1076
UINT32_MAX
#define UINT32_MAX
Definition: lldb-defines.h:31
DynamicLoaderDarwinKernel::KextImageInfo::m_load_process_stop_id
uint32_t m_load_process_stop_id
Definition: DynamicLoaderDarwinKernel.h:200
DynamicLoaderDarwinKernel::m_kext_summary_header_addr
lldb_private::Address m_kext_summary_header_addr
Definition: DynamicLoaderDarwinKernel.h:288
DynamicLoaderDarwinKernel::SearchForKernelNearPC
static lldb::addr_t SearchForKernelNearPC(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:289
LLDB_INVALID_ADDRESS
#define LLDB_INVALID_ADDRESS
Definition: lldb-defines.h:86
DynamicLoaderDarwinKernel::GetPluginDescriptionStatic
static const char * GetPluginDescriptionStatic()
Definition: DynamicLoaderDarwinKernel.cpp:1556
DynamicLoaderDarwinKernel::KextImageInfo::operator==
bool operator==(const KextImageInfo &rhs)
Definition: DynamicLoaderDarwinKernel.cpp:616
lldb::user_id_t
uint64_t user_id_t
Definition: lldb-types.h:84
DynamicLoaderDarwinKernel::KextImageInfo::GetAddressByteSize
uint32_t GetAddressByteSize()
Definition: DynamicLoaderDarwinKernel.cpp:949
DynamicLoaderDarwinKernel::Initialize
static void Initialize()
Definition: DynamicLoaderDarwinKernel.cpp:1529
FileSpec.h
DynamicLoaderDarwinKernel::DidAttach
void DidAttach() override
Called after attaching a process.
Definition: DynamicLoaderDarwinKernel.cpp:530
DynamicLoaderDarwinKernel::UnregisterNotificationCallbacks
void UnregisterNotificationCallbacks()
lldb::StateType
StateType
Process and Thread States.
Definition: lldb-enumerations.h:73
lldb_private::Log
Definition: Log.h:49
DynamicLoaderDarwinKernel::KERNEL_MODULE_ENTRY_SIZE_VERSION_1
@ KERNEL_MODULE_ENTRY_SIZE_VERSION_1
Definition: DynamicLoaderDarwinKernel.h:96
DynamicLoader.h
DynamicLoaderDarwinKernel::OSKextLoadedKextSummaryHeader::Clear
void Clear()
Definition: DynamicLoaderDarwinKernel.h:232
DynamicLoaderDarwinKernel::GetAddrByteSize
uint32_t GetAddrByteSize()
Definition: DynamicLoaderDarwinKernel.h:86
DynamicLoaderDarwinKernel::DidLaunch
void DidLaunch() override
Called after attaching a process.
Definition: DynamicLoaderDarwinKernel.cpp:539
DynamicLoaderDarwinKernel::KextImageInfo::GetByteOrder
lldb::ByteOrder GetByteOrder()
Definition: DynamicLoaderDarwinKernel.cpp:957
DynamicLoaderDarwinKernel::KextImageInfo::GetLoadAddress
lldb::addr_t GetLoadAddress() const
Definition: DynamicLoaderDarwinKernel.cpp:594
DynamicLoaderDarwinKernel::LoadKernelModuleIfNeeded
void LoadKernelModuleIfNeeded()
Definition: DynamicLoaderDarwinKernel.cpp:977
DynamicLoaderDarwinKernel::m_break_id
lldb::user_id_t m_break_id
Definition: DynamicLoaderDarwinKernel.h:292
lldb::ByteOrder
ByteOrder
Byte ordering definitions.
Definition: lldb-enumerations.h:138
DynamicLoaderDarwinKernel::SearchForKernelViaExhaustiveSearch
static lldb::addr_t SearchForKernelViaExhaustiveSearch(lldb_private::Process *process)
Definition: DynamicLoaderDarwinKernel.cpp:346