Increase search for kernel image from 32MB to 128MB
authorJason Molenda <jason@molenda.com>
Wed, 30 Nov 2022 20:28:47 +0000 (12:28 -0800)
committerJason Molenda <jason@molenda.com>
Mon, 5 Dec 2022 23:11:43 +0000 (15:11 -0800)
commitfe3103fa485f67b15efffd11d592a3341eb7bd57
tree0f01b616435a147bd01abad72130935a84a80952
parent50882b4daf77b9d93e025f804b0855c94a83f237
Increase search for kernel image from 32MB to 128MB

DynamicLoaderDarwinKernel::SearchForKernelNearPC() searches for a
Darwin kernel mach-o header starting at $pc and working backwards,
stopping on the first memory read error encountered.  The kernel,
and the kexts linked in to the kernel, have grown over the years
and the original 32MB scan limit is giving a high chance of failing
to find the kernel if we're in a random kext.

In non-kernel environments, firmware and bare board typically, we
will hit a memory read error on an unmapped page quickly so this
doesn't add a lot of random memory read requests in those environments.

We only check at one megabyte boundaries, so worst case this is 128
reads at the start of a gdb-remote connection.  The check for a
memory read error & stopping was a more recent addition (a few years
ago), so I kept the scan region a bit small.
lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp