v8/include
Peter Marshall 285e4d69de [unwinder] Add a vector-based code page mechanism for arm32
Add an API on Isolate that returns a sorted vector of code pages allocated
within V8. The implementation is designed to be signal-safe, so that the
user (the UMA sampling profiler) can access this information from a signal
handler, where allocation and taking locks is prohibited.

This CL adds the machinery for maintaining the list of allocated code
pages. Further CLs will modify the Unwinder API itself to accept the code
pages provided by this API.

The unwinder API currently uses the reserved virtual-memory range called
the CodeRange to identify where all V8 code objects live, but this doesn't
exist on arm32 or any 32-bit platform, so this approach adds a way to
expose the location of all valid V8 code objects in a signal-safe way for
use by the UMA sampling profiler.

On 64-bit, this API always gives the code_range and embedded_code_range, and
does not maintain a vector of code pages. This is so that we have a unified
API on 32 and 64-bit that can be used in exactly the same way by embedders.

Design doc:
https://docs.google.com/document/d/1VGwUult5AHLRk658VetwEHMOmDDxA2eDQs9lDFMZTE0

Bug: v8:8116
Change-Id: I732509a45121fc54853182481c24d1083275afce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564068
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65469}
2019-12-17 08:05:20 +00:00
..
libplatform [tracing] Fix endianness problem when using booleans 2019-11-08 13:35:41 +00:00
APIDesign.md Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
DEPS [inspector] Build inspector under v8_enable_inspector build flag. 2016-09-06 23:26:35 +00:00
js_protocol-1.2.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol-1.3.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol.pdl [class] implement inspector support for private instance methods 2019-12-04 20:13:34 +00:00
OWNERS Add verwaest as an API owner 2019-10-15 17:40:59 +00:00
v8-inspector-protocol.h [inspector] Build inspector under v8_enable_inspector build flag. 2016-09-06 23:26:35 +00:00
v8-inspector.h [DevTools] Implemented DevTools protocol API to retrieve V8 RunTime Call Stats. 2019-11-05 18:59:24 +00:00
v8-internal.h Reland^2 "[runtime] Move Context::native_context to the map" 2019-10-17 17:33:08 +00:00
v8-platform.h [api] Prepare removal of deprecated tasks API 2019-10-21 13:07:56 +00:00
v8-profiler.h [cpu-profiler] Remove deprecated GetCallUid() 2019-11-27 13:56:19 +00:00
v8-util.h Reland "[api,heap] Remove deprecated Persistent APIs" 2019-04-24 09:34:27 +00:00
v8-value-serializer-version.h Expose the ValueSerializer data format version as a compile-time constant. 2017-04-27 15:14:41 +00:00
v8-version-string.h [build] Fix V8_VERSION_STRING with embedder string 2017-10-23 14:31:52 +00:00
v8-version.h Update V8 version after branch cut 2019-12-05 14:45:51 +00:00
v8-wasm-trap-handler-posix.h [api] Fix includes in trap handler API header files 2019-01-16 15:15:52 +00:00
v8-wasm-trap-handler-win.h [api] Fix includes in trap handler API header files 2019-01-16 15:15:52 +00:00
v8.h [unwinder] Add a vector-based code page mechanism for arm32 2019-12-17 08:05:20 +00:00
v8config.h Remove build support for gcc < 5 2019-10-21 11:20:09 +00:00