v8/tools
Jakob Kummerow d4a4d69cca [tools][wasm] wami: full-module annotated hex dump
This adds a bunch of tracing hooks to the module decoder and uses
them to support "annotated hexdump" output for full modules in wami:

$ out/x64.release/wami my_module.wasm --full-hexdump

Change-Id: I5821d940b5ec236df9708eecd0124172d8893ffd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3754741
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#81791}
2022-07-18 19:43:53 +00:00
..
bazel [bazel] Add optional deps for prebuilt bazel for bots 2021-06-22 08:42:15 +00:00
cfi [cfi] Use inclusive terminology 2020-07-28 05:57:41 +00:00
clusterfuzz Revert "[foozzie] Silence a frequently occuring correctness bug" 2022-06-30 14:44:38 +00:00
cppgc Reland "Reland "Reland "cppgc: Enable checks for assignments in prefinalizers""" 2021-09-29 16:02:17 +00:00
debug_helper [sandbox] Turn ExternalPointerTag into a template parameter 2022-06-27 13:45:20 +00:00
dev [tools][gm] Fix aliases for modes with a suffix 2022-07-05 17:24:41 +00:00
gcmole [tools][gcmole] Add run_gcmole.py --help and drop env vars 2022-04-20 15:26:35 +00:00
generate_shim_headers
heap-layout [tool] fix typo in heap-layout and system-analyzer 2022-01-11 13:06:21 +00:00
heap-stats [tools] Improve heap stats tool documentation 2022-02-03 15:53:04 +00:00
js [tools] Improve system-analyzer profiler panel 2022-06-24 12:22:49 +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 Allow V8 to run all unittests presubmit 2022-03-29 11:14:09 +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 [tools] Refactor patch/no-patch terminology in run_perf.py 2017-11-22 07:19:50 +00:00
profiling [tools] Fully implement linux-perf tools --timeout 2022-07-11 15:15:23 +00:00
profview [tools] Profiler builtins and sparkplug fixes 2021-04-21 11:44:31 +00:00
release [tools] check format of target branch in roll_merge_gerrit.py 2022-06-14 15:02:16 +00:00
sanitizers Reland "[heap] Optimize time to reach global safepoint" 2022-01-12 10:35:25 +00:00
snapshot Revert "[snapshot] Rename embedded*.S files to .asm" 2022-05-27 17:47:54 +00:00
system-analyzer [tools] Improve system-analyzer profiler panel 2022-06-24 12:22:49 +00:00
testrunner [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
toolchain [build] Add support for the other MIPS architectures 2018-03-19 10:43:07 +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 [turboshaft][turbolizer] Changed type of blocks Ids in JSON output 2022-07-12 09:07:59 +00:00
ubsan [respect] Rename UBSAN's blacklists to ignorelists 2021-04-28 07:55:39 +00:00
unittests [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
v8.xcodeproj
v8windbg [v8windbg] Skip undefined types in Torque structs 2022-05-18 15:24:09 +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 [tools][wasm] wami: full-module annotated hex dump 2022-07-18 19:43:53 +00:00
wasm-compilation-hints [wasm] Update OWNERS 2020-01-08 14:56:06 +00:00
zone-stats [zone-stats] Show all zones in a filter 2020-09-09 16:16:11 +00:00
__init__.py [test] make python recognize tools and tools/unittests as packages 2018-12-17 12:12:43 +00:00
adb-d8.py Remove JS natives support, step 3 2019-10-22 07:48:05 +00:00
android-build.sh
android-run.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +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 Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
bash-completion.sh [bash-completion] Support some gm.py completion 2021-03-24 16:24:25 +00:00
bigint-tester.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
BUILD.gn [tools][wasm] Add "wami", the Wasm Module Inspector 2022-07-05 04:45:28 +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] Fix loading old RCS.json files in callstats.html 2022-07-15 09:33:51 +00:00
callstats.py [tools] Fix callstats 2022-02-17 19:12:24 +00:00
callstats.py.vpython [tools] Fix platform specification for scipi 2018-08-17 18:49:49 +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 [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
collect_deprecation_stats.sh [objects] Deprecate GetIsolate/Heap behind a flag 2018-06-01 15:19:21 +00:00
combine_hints.py [builtins-pgo] Minor fixes in the profile reader 2022-06-22 14:30:28 +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 Add more exhaustive tests for Math.min and Math.max. 2015-04-10 12:35:16 +00:00
consarray.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
cpu.sh [tools] Allow specifying cores for cpu.sh script. 2015-11-18 10:53:30 +00:00
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 [log] Rename logging classes 2022-04-19 12:07:16 +00:00
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 [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
eval_gc_nvp.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +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 Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +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 Clean up mark-compact phases and GC counter names. 2015-12-11 11:26:21 +00:00
gc-nvp-to-csv.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gc-nvp-trace-processor.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +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 Revert "[tools] Add a simple gdb frame unwinder" 2022-05-12 14:48:42 +00:00
gen-inlining-tests.py [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
gen-keywords-gen-h.py Fix gen-keywords-gen-h.py 2022-01-03 16:38:27 +00:00
gen-postmortem-metadata.py [megadom] Add TF inlining for Megadom 2022-05-25 14:07:01 +00:00
gen-v8-gn.py [Py3] fix py3 issue in tools 2021-01-25 15:33:53 +00:00
generate-builtins-tests.py [respect] Stop using "blacklist" in several python tools 2020-07-10 19:11:36 +00:00
generate-header-include-checks.py [wasm][refactor] Move ModuleDecoderImpl to -impl.h 2022-07-01 11:43:09 +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_hints.py [builtins-pgo] Minor fixes in the profile reader 2022-06-22 14:30:28 +00:00
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] Remove html-version of the tickprocessor 2022-02-18 16:25:37 +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 [tools] Use ThreadPoolExecutor with reasonable job count default 2019-04-08 10:41:46 +00:00
logreader.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
mac-nm [profiler] Graphical front-end for tick processor. 2017-03-04 13:04:58 +00:00
mac-tick-processor
Makefile.tags [Makefile] Move tags generation to standalone Makefile 2018-01-26 12:03:32 +00:00
objdump-v8 [disasm] Make jump target printing perf friendly 2017-03-20 14:47:04 +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] Prepare parse-processor for baseline compiler 2021-02-22 10:51:00 +00:00
parse-processor.mjs [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
perf-compare.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +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 [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +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 Preparing v8 to use with python3 2019-10-18 13:10:56 +00:00
run_perf.py [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
run-clang-tidy.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
run-num-fuzzer.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
run-tests.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
run-wasm-api-tests.py [wasm-c-api] Roll 7865f7d: Expose possible traps during Instance::make 2019-08-23 09:46:29 +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 Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +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][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
try_perf.py [v8_perf] remove deprecated builder options from v8 perf trybot 2021-12-02 11:02:32 +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 [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
v8heapconst.py Revert "[shared-struct] Add Atomics.Condition" 2022-07-15 00:00:19 +00:00
whitespace.txt Revert "White space to trigger Skia branch rollers" 2022-06-30 14:24:17 +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.