Here's a debug patch:
diff --git a/Source/bmalloc/bmalloc/VMAllocate.h b/Source/bmalloc/bmalloc/VMAllocate.h index 713e9c9fbb6..5c9c8553b1a 100644 --- a/Source/bmalloc/bmalloc/VMAllocate.h +++ b/Source/bmalloc/bmalloc/VMAllocate.h @@ -35,6 +35,9 @@ #include <sys/mman.h> #include <unistd.h>
+#include <cstdio> +#include <errno.h> + #if BOS(DARWIN) #include <mach/vm_page_size.h> #include <mach/vm_statistics.h> @@ -123,7 +126,10 @@ inline void* tryVMAllocate(size_t vmSize) vmValidate(vmSize); void* result = mmap(0, vmSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | BMALLOC_NORESERVE, BMALLOC_VM_TAG, 0); if (result == MAP_FAILED) +{ +fprintf(stderr, "%s: mmap failed: vmSize=%zu errno=%d (%s)", __FUNCTION__, vmSize, errno, strerror(errno)); return nullptr; +} return result; }
Here's a debug patch:
diff --git a/Source/ bmalloc/ bmalloc/ VMAllocate. h b/Source/ bmalloc/ bmalloc/ VMAllocate. h .5c9c8553b1a 100644 bmalloc/ bmalloc/ VMAllocate. h bmalloc/ bmalloc/ VMAllocate. h
index 713e9c9fbb6.
--- a/Source/
+++ b/Source/
@@ -35,6 +35,9 @@
#include <sys/mman.h>
#include <unistd.h>
+#include <cstdio> page_size. h> statistics. h> size_t vmSize) (vmSize) ;
+#include <errno.h>
+
#if BOS(DARWIN)
#include <mach/vm_
#include <mach/vm_
@@ -123,7 +126,10 @@ inline void* tryVMAllocate(
vmValidate
void* result = mmap(0, vmSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | BMALLOC_NORESERVE, BMALLOC_VM_TAG, 0);
if (result == MAP_FAILED)
+{
+fprintf(stderr, "%s: mmap failed: vmSize=%zu errno=%d (%s)", __FUNCTION__, vmSize, errno, strerror(errno));
return nullptr;
+}
return result;
}