v8/tools
Benedikt Meurer 7f20cf56e6 [debug] Report optimized out and certain TDZ values as unavailable.
This adds a new --experimental-value-unavailable flag, which is disabled
for now. When enabled the debugger reports values that are optimized out
by TurboFan and values of certain variables in Temporal Dead Zones (TDZ)
as unavailable. Internally we use a special `value_unavailable` accessor
info to represent these values, and on the debugger boundary we report
these properties with `value`, `get`, or `set`.

Doc: https://goo.gle/devtools-value-unavailable
Bug: chromium:1328681
Demo: devtools-dbg-stories.netlify.app/crbug-1328681-value-unavailable
Change-Id: Idb09a4a148335a950deae60f7c07caecc48826ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3627510
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#81509}
2022-07-04 09:25:44 +00:00
..
bazel
cfi
clusterfuzz Revert "[foozzie] Silence a frequently occuring correctness bug" 2022-06-30 14:44:38 +00:00
cppgc
debug_helper [sandbox] Turn ExternalPointerTag into a template parameter 2022-06-27 13:45:20 +00:00
dev [tools][gm] Support aliases for modes 2022-06-27 09:07:39 +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
heap-stats
js [tools] Improve system-analyzer profiler panel 2022-06-24 12:22:49 +00:00
jsfunfuzz
link_clicker.extension
mb Allow V8 to run all unittests presubmit 2022-03-29 11:14:09 +00:00
memory
msan
perf
profiling [tools] Fix linux-perf-chrome.py renderer command path 2022-04-25 14:55:32 +00:00
profview
release [tools] check format of target branch in roll_merge_gerrit.py 2022-06-14 15:02:16 +00:00
sanitizers
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 (3) 2022-06-14 12:49:47 +00:00
toolchain
torque
tracing/proto-converter
turbolizer [turbolizer] Selection refactoring 2022-06-27 10:23:39 +00:00
ubsan
unittests [test] Refactor testrunner (2) 2022-06-02 16:49:28 +00:00
v8.xcodeproj
v8windbg [v8windbg] Skip undefined types in Torque structs 2022-05-18 15:24:09 +00:00
valgrind/asan
vim
visual_studio
wasm [wasm] Remove SIMD proposal tests 2022-04-28 05:22:59 +00:00
wasm-compilation-hints
zone-stats
__init__.py
adb-d8.py
android-build.sh
android-run.py
android-sync.sh
arguments.mjs
avg.py
bash-completion.sh
bigint-tester.py
BUILD.gn
callstats_groups.py
callstats-from-telemetry.sh
callstats.html
callstats.py
callstats.py.vpython
check-inline-includes.sh
check-static-initializers.sh
check-unused-bailouts.sh
check-unused-symbols.sh
codemap.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
collect_deprecation_stats.sh
combine_hints.py [builtins-pgo] Minor fixes in the profile reader 2022-06-22 14:30:28 +00:00
compare_torque_output.py
compare-table-gen.js
consarray.mjs
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
disasm.py [log] Rename logging classes 2022-04-19 12:07:16 +00:00
draw_instruction_graph.sh
dump-cpp.py
dumpcpp-driver.mjs
dumpcpp.mjs [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
eval_gc_nvp.py
eval_gc_time.sh
find_depot_tools.py
find-builtin
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 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
gen-postmortem-metadata.py [megadom] Add TF inlining for Megadom 2022-05-25 14:07:01 +00:00
gen-v8-gn.py
generate-builtins-tests.py
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
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
ic-processor-driver.mjs
index.html
linux-tick-processor
lldb_commands.py
locs.py
logreader.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
mac-nm
mac-tick-processor
Makefile.tags
objdump-v8
OWNERS
package-lock.json
package.json
parse-processor
parse-processor-driver.mjs
parse-processor.html
parse-processor.mjs [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
perf-compare.py
predictable_wrapper.py
PRESUBMIT.py
process-wasm-compilation-times.py
profile_view.js
profile_view.mjs
profile.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
README.md
regexp-sequences.py
run_perf.py [tools] Fix run_perf.py --filter=<regexp> 2022-05-09 13:34:50 +00:00
run-clang-tidy.py
run-num-fuzzer.py
run-tests.py
run-wasm-api-tests.py
run.py [tools] Switch script wrapper to Py3 2022-04-04 14:13:17 +00:00
shell-utils.h
sourcemap.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
splaytree.mjs
stats-viewer.py
test262-results-parser.js
tickprocessor-driver.mjs
tickprocessor.mjs [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
try_perf.py
turbolizer-perf.py
update-object-macros-undef.py
v8_presubmit.py [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
v8heapconst.py [debug] Report optimized out and certain TDZ values as unavailable. 2022-07-04 09:25:44 +00:00
whitespace.txt Revert "White space to trigger Skia branch rollers" 2022-06-30 14:24:17 +00:00
windbg.js
windows-tick-processor.bat
wpr.wprp

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.