v8/tools
Clemens Backes 431fff66f5 [traphandler] Add simulator support
This prepares the trap handler to support being used from simulators.
Modifications to the arm64 simulator will be done in a follow-up CL. For
now, the trap handler will be registered but not used in Wasm (we emit
explicit bounds checks instead, as before).

The implementation uses inline assembly, so it is only available on x64
POSIX systems for now. This is the main platform we use for testing and
for fuzzing, so it should give us the test coverage we need. If needed,
inline assembly for other platforms can be added later.
The new code will be executed by the existing arm64 simulator bots, e.g.
"V8 Linux - arm64 - sim".

R=ahaas@chromium.org, mseaborn@chromium.org

Bug: v8:11955
Change-Id: Idc50291c704d9dea902ae0098e5309f19055816c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3011160
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75780}
2021-07-19 09:45:04 +00:00
..
bazel [bazel] Add optional deps for prebuilt bazel for bots 2021-06-22 08:42:15 +00:00
blink_tests
cfi
clusterfuzz [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
cppgc cppgc: Check mark bit on assignment from prefinalizer. 2021-05-19 14:17:38 +00:00
debug_helper Allowing map word to be used for other state in GC header. 2021-04-12 17:34:13 +00:00
dev [tools] Add clean action to gm.py 2021-06-16 10:42:07 +00:00
gcmole Build clang for gcmole bootstrap 2021-07-05 12:39:37 +00:00
generate_shim_headers
heap-stats Revert "[objects] Remove uncached internal external string type" 2021-01-15 19:48:34 +00:00
ignition
jsfunfuzz
link_clicker.extension
mb [tools] More Python 3 compatibility fixes 2021-05-05 08:24:36 +00:00
memory [tools] Clean up insensitive terms 2020-12-01 20:02:48 +00:00
msan Rename msan blacklist.txt to ignorelist.txt 2021-05-27 08:24:50 +00:00
perf
profview [tools] Profiler builtins and sparkplug fixes 2021-04-21 11:44:31 +00:00
release [tools] Update auto-roller after renamed branch 2021-04-08 10:23:07 +00:00
sanitizers
snapshot
system-analyzer [tools][system-analyzer] Various improvements 2021-07-05 09:12:57 +00:00
testrunner [Turboprop] Turboprop is the future. 2021-07-19 09:44:25 +00:00
toolchain
torque
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] Solve off-by-one source position error for non-Wasm 2021-07-09 09:07:54 +00:00
ubsan [respect] Rename UBSAN's blacklists to ignorelists 2021-04-28 07:55:39 +00:00
unittests [test] Add verbose output of flaky tests 2021-05-26 16:22:59 +00:00
v8.xcodeproj
v8windbg [v8windbg] Fix jsstack command to skip unavailable fields 2021-07-14 00:01:52 +00:00
valgrind/asan
vim [vim] Update vim scripts 2021-04-01 16:14:04 +00:00
visual_studio
wasm [wasm] Update spec tests 2021-03-17 15:59:14 +00:00
wasm-compilation-hints
zone-stats [zone-stats] Show all zones in a filter 2020-09-09 16:16:11 +00:00
__init__.py
adb-d8.py
android-build.sh
android-ll-prof.sh
android-run.py
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
bash-completion.sh [bash-completion] Support some gm.py completion 2021-03-24 16:24:25 +00:00
bigint-tester.py
BUILD.gn
callstats_groups.py [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats-from-telemetry.sh [Tools] Improve callstats.html .txt file handling 2021-01-28 10:37:09 +00:00
callstats.html [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats.py
callstats.py.vpython
check-inline-includes.sh
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
check-unused-symbols.sh
codemap.mjs [tools][system-analyzer] Support profiling ticks 2021-05-31 13:09:16 +00:00
collect_deprecation_stats.sh
compare_torque_output.py
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] Add api events timeline-track to system-analyzer 2020-12-05 10:49:42 +00:00
deprecation_stats.py [tools] Update deprecation_stats.py 2021-01-07 10:07:53 +00:00
DEPS
detect-builtins.js
disasm.py
draw_instruction_graph.sh
dump-cpp.py [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
dumpcpp-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
dumpcpp.mjs Reland "[mjsunit][tools][d8] Full roundtrip tickprocessor test" 2021-06-02 07:02:48 +00:00
eval_gc_nvp.py
eval_gc_time.sh
find_depot_tools.py
find-builtin [tools] Add a tool for finding builtins 2021-04-07 12:51:38 +00:00
find-commit-for-patch.py
freebsd-tick-processor
fuzz-harness.sh
gc_nvp_common.py
gc-nvp-to-csv.py
gc-nvp-trace-processor.py
gdb-v8-support.py
gdbinit [tools] Default to printing $pc when jco is called without args 2021-07-07 17:24:01 +00:00
gen-inlining-tests.py
gen-keywords-gen-h.py
gen-postmortem-metadata.py Update V8 postmortem metadata script 2020-12-10 16:09:08 +00:00
gen-v8-gn.py [Py3] fix py3 issue in tools 2021-01-25 15:33:53 +00:00
generate-builtins-tests.py
generate-header-include-checks.py [traphandler] Add simulator support 2021-07-19 09:45:04 +00:00
generate-runtime-call-stats.py
generate-ten-powers.scm
get_landmines.py
grokdump.py [objects] Delete double field unboxing 2021-02-11 17:24:15 +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] Improve tools landing page 2021-03-17 17:02:00 +00:00
linux-tick-processor [tools] Port more tools to ES6 classes 2020-11-04 14:45:41 +00:00
ll_prof.py
lldb_commands.py [tools] Set up source map for lldb 2021-07-01 18:04:17 +00:00
locs.py
logreader.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
mac-nm
mac-tick-processor
Makefile.tags
objdump-v8
OWNERS
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] Prepare parse-processor for baseline compiler 2021-02-22 10:51:00 +00:00
parse-processor.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
perf-compare.py
predictable_wrapper.py
PRESUBMIT.py
profile_view.js
profile_view.mjs [tools] Modernize tools .mjs files 2020-11-10 12:32:26 +00:00
profile.mjs [tools][system-analyzer] Display timer events 2021-06-29 11:43:02 +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
run_perf.py [riscv64] Add riscv64 to the architecture list of js-perf-test 2021-06-17 11:46:21 +00:00
run-clang-tidy.py
run-llprof.sh
run-num-fuzzer.py
run-perf.sh
run-tests.py
run-wasm-api-tests.py
run.py
shell-utils.h
sourcemap.mjs [system-analyzer] Add source map support 2021-06-22 14:11:03 +00:00
splaytree.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
stats-viewer.py
test262-results-parser.js
tick-processor.html Reland "[mjsunit][tools][d8] Full roundtrip tickprocessor test" 2021-06-02 07:02:48 +00:00
tickprocessor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
tickprocessor.mjs [tools][system-analyzer] Various improvements 2021-07-05 09:12:57 +00:00
try_perf.py
turbolizer-perf.py
update-object-macros-undef.py
v8_presubmit.py [bigint] Move multiplication to src/bigint/ 2021-04-19 15:40:43 +00:00
v8heapconst.py Revert "[rab/gsab] Update to the new spec" 2021-07-19 08:12:24 +00:00
whitespace.txt Whitespace change to trigger bots 2021-07-09 08:17:54 +00:00
windbg.js
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.