summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp')
-rw-r--r--lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
index a82b3fe267b..31f746c1277 100644
--- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
+++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
@@ -1229,6 +1229,16 @@ bool DynamicLoaderDarwinKernel::ParseKextSummaries(
break;
}
}
+ // If this "kext" entry is actually an alias for the kernel --
+ // the kext was compiled into the kernel or something -- then
+ // we don't want to load the kernel's text section at a different
+ // address. Ignore this kext entry.
+ if (kext_summaries[new_kext].GetUUID().IsValid()
+ && m_kernel.GetUUID().IsValid()
+ && kext_summaries[new_kext].GetUUID() == m_kernel.GetUUID()) {
+ to_be_added[new_kext] = false;
+ break;
+ }
if (add_this_one) {
number_of_new_kexts_being_added++;
}
OpenPOWER on IntegriCloud