Files
Leszek Swirski 094359d085 [gcmole] Track table handles, slots, and members across GCs
Extend GCMole to check that table handles (ExternalPointerHandle,
CppHeapPointerHandle, IndirectPointerHandle, and JSDispatchHandle),
along with their slots (ExternalPointerSlot, CppHeapPointerSlot,
IndirectPointerSlot) and on-heap layout members (ExternalPointerMember,
TrustedPointerMember, CppHeapPointerMember, JSDispatchHandleMember), do
not become stale across GCs.

Table handles are tracked by value via IsTableHandleType, while interior
pointers to on-heap handle fields are covered by *Member* and *Slot
(removing JSDispatchHandle* tracking). Also handle builtin assignment
(BO_Assign) for scalar handle typedefs and ignore constexpr or non-local
variables in FunctionAnalyzer::Use so global constants like
kNullExternalPointerHandle do not trigger false positives.

TAG=agy
CONV=b28ddaf1-e172-44f5-8ec2-f06f4134b6e9

Bug: 571814087
Change-Id: Iae3d83182a058e5d92918524c46273a89ab93f85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8545995
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110540}
2026-10-09 13:08:05 -07:00
..
2026-08-21 02:23:41 -07:00
2026-09-28 08:56:52 -07:00
2024-06-28 11:34:31 +00:00
2024-04-23 13:05:59 +00:00
2022-09-13 07:54:54 +00:00
2024-05-15 15:17:32 +00:00
2024-11-15 10:05:11 +00:00
2026-03-31 03:27:09 -07:00
2022-09-13 07:54:54 +00:00
2026-04-27 07:08:59 -07:00
2023-08-18 19:13:45 +00:00
2026-04-27 07:08:59 -07:00
2022-08-29 14:14:56 +00:00
2023-08-18 19:13:45 +00:00
2026-04-27 07:08:59 -07:00
2022-03-02 13:41:32 +00:00
2018-08-28 21:18:23 +00:00
2026-07-22 08:08:46 -07: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;
  npm run start-webserver;

Local Symbol Server

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

  cd tools/;
  ./system-analyzer/local-server.sh;

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