v8/tools
Olivier Flückiger 331c577e1d [static-roots] Allow creating isolates from existing r/o snapshot
This adds the ability to create an isolate from scratch, except the
read only roots, which are initialized from a read_only_data snapshot.
To do this we split the heap setup in a read/only part and the rest.
The goal of these changes is to later support writing serializer tests,
even if the read only roots are static and have to be loaded from a
fixed snapshot.

Bug: v8:13466
Change-Id: I078695b95710e5281da013ca0c08af0e153b4725
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4037271
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84750}
2022-12-09 11:43:52 +00:00
..
bazel [bazel] Add optional deps for prebuilt bazel for bots 2021-06-22 08:42:15 +00:00
builtins-pgo [builtins-pgo] Make builtins profiles architecture independent 2022-11-30 10:27:24 +00:00
cfi [cfi] Use inclusive terminology 2020-07-28 05:57:41 +00:00
clusterfuzz [heap] Enable --shared-string-table on more fuzzers again 2022-11-28 14:38:29 +00:00
cppgc [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
debug_helper [v8windbg] Fix crash when reading external strings 2022-11-28 16:13:09 +00:00
dev [tools] Fix update-vscode.sh again 2022-12-05 15:22:42 +00:00
gcmole [static-roots] Allow creating isolates from existing r/o snapshot 2022-12-09 11:43:52 +00:00
generate_shim_headers [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
heap-layout [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
heap-stats Reland "[intl] Implement DurationFormat" 2022-10-05 07:42:28 +00:00
js [tools] Fix parse-processor 2022-08-04 19:00:33 +00:00
jsfunfuzz [test] update the jsfunfuzz archive in Google Storage 2018-12-18 15:00:35 +00:00
link_clicker.extension [tools] Add link_click chrome extension 2017-05-09 15:25:21 +00:00
mb [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
memory [tools] Add tools/memory/rss.py to sample RSS usage 2022-10-21 16:38:40 +00:00
msan Rename msan blacklist.txt to ignorelist.txt 2021-05-27 08:24:50 +00:00
perf [tools] Refactor patch/no-patch terminology in run_perf.py 2017-11-22 07:19:50 +00:00
profiling [tools] linux-perf-d8.py: Add option to skip pprof 2022-10-19 13:13:57 +00:00
profview [tools] Profview fixes 2022-08-30 13:55:08 +00:00
release [tools] Fix tools/mergeinfo.py python3 issues 2022-10-11 13:09:33 +00:00
sanitizers [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
snapshot [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
system-analyzer Revert "Use BigInts in processor.mjs and related code to avoid unsafe ints in" 2022-12-07 01:14:08 +00:00
testrunner [resultdb] Make suffixes more distinguishable 2022-12-08 15:38:51 +00:00
toolchain [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
torque [tools] Clean up Py2 code 2022-03-17 09:05:27 +00:00
tracing/proto-converter [tools] Refactor, use built-in Array.flat() instead of custom flatten method 2021-05-31 07:46:15 +00:00
turbolizer [turbolizer] Remove tslint:recommended so that presubmit can be run 2022-12-08 11:16:29 +00:00
ubsan Reland "Update V8 DEPS (trusted)" 2022-11-30 14:46:31 +00:00
unittests [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
v8.xcodeproj
v8windbg Omit failing v8windbg test steps 2022-12-07 11:29:25 +00:00
valgrind/asan [build] Add testrunner data deps 2018-03-26 12:17:08 +00:00
vim [vim] Update vim scripts 2021-04-01 16:14:04 +00:00
visual_studio
wasm [wasm] Remove indirection to WasmModule::signature_zone 2022-12-06 15:45:52 +00:00
wasm-compilation-hints [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
zone-stats [CSA][codegen] Add BitcastElision Phase 2022-10-20 02:29:57 +00:00
__init__.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
adb-d8.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
android-build.sh
android-run.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
android-sync.sh [mjsunit][tools] Sync module files for tests 2020-10-07 12:45:19 +00:00
arguments.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
avg.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
bash-completion.sh [bash-completion] Support some gm.py completion 2021-03-24 16:24:25 +00:00
bigint-tester.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
BUILD.gn [gcmole] Optimize data dependencies 2022-12-05 14:03:39 +00:00
callstats_groups.py [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats-from-telemetry.sh [tools] Fix callstats 2022-02-17 19:12:24 +00:00
callstats.html [tools] Skip over group entries in RCS input file 2022-09-12 15:40:41 +00:00
callstats.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
check-inline-includes.sh [iwyu] Extend inline include checking to tests. 2017-09-08 09:31:32 +00:00
check-static-initializers.sh Bump expected static initializers count from 2 to 3 2021-02-12 09:47:44 +00:00
check-unused-bailouts.sh [tools] Speed-up check-unused-bailouts.sh 2017-08-02 11:11:19 +00:00
check-unused-symbols.sh [cleanup] Remove unused heap-symbols and add tool. 2018-11-08 17:57:05 +00:00
codemap.mjs Revert "Use BigInts in processor.mjs and related code to avoid unsafe ints in" 2022-12-07 01:14:08 +00:00
collect_deprecation_stats.sh [objects] Deprecate GetIsolate/Heap behind a flag 2018-06-01 15:19:21 +00:00
compare_torque_output.py [v8] Migrate compare_torque_output to py3 2022-02-08 15:46:11 +00:00
compare-table-gen.js
consarray.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
cpu.sh
cross_build_gcc.sh
csvparser.mjs [tools][system-analyzer] Various improvements 2022-04-08 19:46:22 +00:00
DEPS
detect-builtins.js [tools] Fix detect-builtins.js 2016-06-09 10:17:32 +00:00
disasm.py [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
draw_instruction_graph.sh
dump-cpp.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
dumpcpp-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
dumpcpp.mjs [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
eval_gc_nvp.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
eval_gc_time.sh Remove all leftovers of store buffer 2021-11-10 09:29:41 +00:00
find_depot_tools.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
find-builtin [tools] Add a tool for finding builtins 2021-04-07 12:51:38 +00:00
find-commit-for-patch.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
freebsd-tick-processor
fuzz-harness.sh [compiler] Make --debug-code the default in debug builds. 2016-12-02 11:36:55 +00:00
gc_nvp_common.py
gc-nvp-to-csv.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gc-nvp-trace-processor.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gdb-v8-support.py [tools] Fix gdb redirect helper in gdb-v8-support.py 2021-10-21 12:27:45 +00:00
gdbinit [tools][gdbinit] Increase search depth for V8_Dcheck frame 2022-12-02 12:59:48 +00:00
gen-inlining-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gen-keywords-gen-h.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gen-postmortem-metadata.py [build] Make build deterministic 2022-11-30 11:37:43 +00:00
gen-v8-gn.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
generate-builtins-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
generate-header-include-checks.py [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
generate-runtime-call-stats.py [tools] Fix retention of json files in RCS script 2020-03-26 12:07:56 +00:00
generate-ten-powers.scm
get_landmines.py [py3] Bump get_landmines to py3 2022-04-04 11:03:36 +00:00
grokdump.py [tools] grokdump: Fix objdump detection for Python3 2022-06-23 14:28:54 +00:00
ic-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
ic-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
index.html [tools] Fix index.html links 2022-08-29 14:14:56 +00:00
linux-tick-processor [tools] Port more tools to ES6 classes 2020-11-04 14:45:41 +00:00
lldb_commands.py [tools] Set up source map for lldb 2021-07-01 18:04:17 +00:00
locs.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
logreader.mjs Revert "Use BigInts in processor.mjs and related code to avoid unsafe ints in" 2022-12-07 01:14:08 +00:00
mac-nm [tools] Profview fixes 2022-08-30 13:55:08 +00:00
mac-tick-processor
Makefile.tags [Makefile] Move tags generation to standalone Makefile 2018-01-26 12:03:32 +00:00
objdump-v8 [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
OWNERS [owners] Includes infra team as tools owners 2021-11-25 07:55:08 +00:00
package-lock.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
package.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
parse-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
parse-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
parse-processor.html [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
parse-processor.mjs [tools] Fix parse-processor 2022-08-04 19:00:33 +00:00
perf-compare.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
predictable_wrapper.py [tools] Clean up predictable wrapper py2 code 2022-07-18 07:38:42 +00:00
PRESUBMIT.py Reland "[tools] Clean up py2 code" 2022-03-25 12:14:26 +00:00
process-wasm-compilation-times.py [wasm] Tweak constants for estimating code space size 2022-03-15 14:41:13 +00:00
profile_view.js
profile_view.mjs [tools] Modernize tools .mjs files 2020-11-10 12:32:26 +00:00
profile.mjs Revert "Use BigInts in processor.mjs and related code to avoid unsafe ints in" 2022-12-07 01:14:08 +00:00
README.md [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
regexp-sequences.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run_perf.py [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
run-clang-tidy.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run-num-fuzzer.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run-wasm-api-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run.py [tools] Switch script wrapper to Py3 2022-04-04 14:13:17 +00:00
shell-utils.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
sourcemap.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
splaytree.mjs [tools] Improve system analyzer 2022-03-02 13:41:32 +00:00
stats-viewer.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
test262-results-parser.js test262 roll 2018-08-28 21:18:23 +00:00
tickprocessor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
tickprocessor.mjs [tools][profile] Add support for maglev optimisation markers 2022-07-27 08:48:25 +00:00
try_perf.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
turbolizer-perf.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
update-object-macros-undef.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
v8_presubmit.py [gcmole] Simplify gcmole directives and add tests 2022-11-14 13:07:15 +00:00
v8heapconst.py [static-roots] Allow creating isolates from existing r/o snapshot 2022-12-09 11:43:52 +00:00
whitespace.txt Whitespace change to test CQ 2022-11-14 08:23:18 +00:00
windbg.js [heap] Add base class for LargeObjectSpaces 2019-10-25 09:22:57 +00:00
windows-tick-processor.bat [tools] Use .mjs in windows-tick-processor.bat 2021-01-07 09:00:23 +00:00
wpr.wprp Step 1 (of 3-ish): Basic ETW Instrumentation in V8 2021-01-05 20:11:03 +00:00

TOOLS

This directory contains debugging and investigation tools for V8.

The contents are regularly mirrored to http://v8.dev/tools.

Local Development

For local development you have to start a local webserver under http://localhost:8000:

  cd tools/;
  npm install;
  ws;

Local Symbol Server

The system-analyzer can symbolize profiles for local binaries by running a local symbol server

  cd tools/;
  ws --stack system-analyzer/lws-middleware.js lws-static cors;

Note that the local symbol server will run nm and objdump and has access to your files.