> We know that the any out of bounds access will land in the reservation that we haven't marked as accessible (also called the guard region). We catch accesses in the guard region with a signal handler and the signal handler knows how to throw the right exception.
Nice. This was a very enlightning answer. OS::ReserveRegion <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=116&gs=cpp%253Av8%253A%253Abase%253A%253Aclass-OS%253A%253AReserveRegion(unsigned%2Blong%252C%2Bvoid%2B*)%2540chromium%252F..%252F..%252Fv8%252Fsrc%252Fbase%252Fplatform%252Fplatform-linux.cc%257Cdef&gsn=ReserveRegion&ct=xref_usages>(size_t <https://cs.chromium.org/chromium/usr/lib/clang/google3-trunk/include/stddef.h?l=62&ct=xref_jump_to_def&gsn=size_t> size <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=116&gs=cpp%253Av8%253A%253Abase%253A%253Aclass-OS%253A%253AReserveRegion(unsigned%2Blong%252C%2Bvoid%2B*)%253A%253Aparam-size%2540chromium%252F..%252F..%252Fv8%252Fsrc%252Fbase%252Fplatform%252Fplatform-linux.cc%257Cdef&gsn=size&ct=xref_usages>, void* <https://cs.chromium.org/chromium/src/out/Debug/GENERATED/figments/cpp/PointerTo/void.cc?l=3&ct=xref_jump_to_def&gsn=*> hint <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=116&gs=cpp%253Av8%253A%253Abase%253A%253Aclass-OS%253A%253AReserveRegion(unsigned%2Blong%252C%2Bvoid%2B*)%253A%253Aparam-hint%2540chromium%252F..%252F..%252Fv8%252Fsrc%252Fbase%252Fplatform%252Fplatform-linux.cc%257Cdef&gsn=hint&ct=xref_usages>) { void* <https://cs.chromium.org/chromium/src/out/Debug/GENERATED/figments/cpp/PointerTo/void.cc?l=3&ct=xref_jump_to_def&gsn=*> result <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=117&gs=cpp%253Av8%253A%253Abase%253A%253Aclass-OS%253A%253AReserveRegion(unsigned%2Blong%252C%2Bvoid%2B*)%253A%253Aresult%2540chromium%252F..%252F..%252Fv8%252Fsrc%252Fbase%252Fplatform%252Fplatform-linux.cc%253A3425%257Cdef&gsn=result&ct=xref_usages> = mmap <https://cs.chromium.org/chromium/src/build/linux/debian_jessie_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/mman.h?l=61&ct=xref_jump_to_def&gsn=mmap>(hint <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=116&ct=xref_jump_to_def&gsn=hint>, size <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=116&ct=xref_jump_to_def&gsn=size>, PROT_NONE <https://cs.chromium.org/chromium/src/build/linux/debian_jessie_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mman-linux.h?l=35&ct=xref_jump_to_def&gsn=PROT_NONE>, MAP_PRIVATE <https://cs.chromium.org/chromium/src/build/linux/debian_jessie_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mman-linux.h?l=43&ct=xref_jump_to_def&gsn=MAP_PRIVATE> | MAP_ANONYMOUS <https://cs.chromium.org/chromium/src/build/linux/debian_jessie_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mman-linux.h?l=55&ct=xref_jump_to_def&gsn=MAP_ANONYMOUS> | MAP_NORESERVE <https://cs.chromium.org/chromium/src/build/linux/debian_jessie_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mman.h?l=37&ct=xref_jump_to_def&gsn=MAP_NORESERVE>, kMmapFd <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=101&ct=xref_jump_to_def&gsn=kMmapFd>, kMmapFdOffset <https://cs.chromium.org/chromium/src/v8/src/base/platform/platform-linux.cc?l=102&ct=xref_jump_to_def&gsn=kMmapFdOffset>); mmap -> MAP_ANONYMOUS Much better.. i will do the same over here and try with memory intense C(or using the macros from wasm tests) code later, to learn more about how v8deals with it. This also reminds me that the parts of my codebase that deals with V8 are the most fun :) Thanks for your time and patience through all this. -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
