LLDB now has a Kernel dynamic linker that can detect where kexts are
loaded. It locks onto *-apple-darwin binaries where the binary has
a "__KLD" segment. Soon I will modify the lldb_private::ObjectFile
class to return an executable type which will be an enum with values
something like:
eObjectFileTypeUserExectable,
eObjectFileTypeUserSharedLibrary,
eObjectFileTypeKernelExectable,
eObjectFileTypeKernelSharedLibrary,
eObjectFileTypeObjectFile,
eObjectFileTypeCoreFile
But for now we look at the section since a user and kernel mach-o
executable have the same mach-o file type.
llvm-svn: 134682
diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-Kernel/DynamicLoaderMacOSXKernel.h b/lldb/source/Plugins/DynamicLoader/MacOSX-Kernel/DynamicLoaderMacOSXKernel.h
index e6de404..5dddfed 100644
--- a/lldb/source/Plugins/DynamicLoader/MacOSX-Kernel/DynamicLoaderMacOSXKernel.h
+++ b/lldb/source/Plugins/DynamicLoader/MacOSX-Kernel/DynamicLoaderMacOSXKernel.h
@@ -193,6 +193,7 @@
{
char name[KERNEL_MODULE_MAX_NAME];
lldb::ModuleSP module_sp;
+ uint32_t module_create_stop_id;
lldb_private::UUID uuid; // UUID for this dylib if it has one, else all zeros
lldb_private::Address so_address; // The section offset address for this kext in case it can be read from object files
uint64_t address;
@@ -206,6 +207,7 @@
OSKextLoadedKextSummary() :
module_sp (),
+ module_create_stop_id (UINT32_MAX),
uuid (),
so_address (),
address (LLDB_INVALID_ADDRESS),
@@ -236,6 +238,7 @@
::memset (&header, 0, sizeof(header));
}
module_sp.reset();
+ module_create_stop_id = UINT32_MAX;
uuid.Clear();
segments.clear();
}