From a02869de00a090576744abf462e75bc8b27261e6 Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Thu, 31 Jul 2014 06:07:04 +0000 Subject: [PATCH] When doing an exhaustive search for the kernel in memory, also look at 16k offsets. llvm-svn: 214387 --- .../DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp index 22fb0293b8c9..fa518d30aec0 100644 --- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp +++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp @@ -326,6 +326,8 @@ DynamicLoaderDarwinKernel::SearchForKernelNearPC (Process *process) return addr + 0x1000; if (CheckForKernelImageAtAddress (addr + 0x2000, process).IsValid()) return addr + 0x2000; + if (CheckForKernelImageAtAddress (addr + 0x4000, process).IsValid()) + return addr + 0x4000; i++; addr -= 0x100000; } @@ -376,6 +378,8 @@ DynamicLoaderDarwinKernel::SearchForKernelViaExhaustiveSearch (Process *process) return addr + 0x1000; if (CheckForKernelImageAtAddress (addr + 0x2000, process).IsValid()) return addr + 0x2000; + if (CheckForKernelImageAtAddress (addr + 0x4000, process).IsValid()) + return addr + 0x4000; addr += 0x100000; } return LLDB_INVALID_ADDRESS;