v8/test/debugger
Andreas Haas 37e5a28add Reland: "[wasm] Compile debug code lazily"
Three issues were fixed:
* In debug state, only publish debug code.
* When entering debugging in an isolate, only delete the code of
  those NativeModules that aren't in debug state already.
* When async compilation finishes, only throw away code if the debug
  state changed during compilation.

Original message:

Currently V8 recompiles all functions of a WebAssembly module when a
debugging session starts. This is outdated behavior and
causes OOMs for developers. With this CL all compiled code just gets
removed when a debugging session starts, and debugging code gets
compiled lazily.

This behavior may lead to small delays whenever a new function gets
entered by the debugger. However, developers are used to debugging code
being slightly slower, and the small delays should be in the order of
few milliseconds. On the other hand, debug modules can be big,
sometimes even more than 1'000'000 functions, and developers reported
OOMs when debugging.

R=clemensb@chromium.org

Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel
Bug: v8:13541, chromium:1372621, v8:13224
Change-Id: Ie27388a287cd16a67a483e14fc22c2ab4180962e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4079190
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84873}
2022-12-15 14:59:13 +00:00
..
bugs Allow name collision when materializing scope object 2021-11-02 13:06:43 +00:00
debug Reland: "[wasm] Compile debug code lazily" 2022-12-15 14:59:13 +00:00
protocol [debugger] basic test infrastructure for new debugger test api. 2016-10-21 06:38:05 +00:00
regress [debug] Fix source position around class literals 2022-08-16 07:16:47 +00:00
wrapper [debugger] Various break-related functionality in test wrapper 2016-10-28 08:18:34 +00:00
BUILD.gn [build] Add data deps for d8 test suites 2018-03-26 13:44:58 +00:00
debugger.status [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00
test-api.js [debug][cleanup] Use consistent StepInto and StepOver naming. 2021-06-01 11:26:57 +00:00
testcfg.py [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00