- name
- v8-commands
- description
- Key commands for building, debugging, and testing in V8. Use when needing command syntax for gm.py, d8 flags, or run-tests.py. Do not use for environment setup.
# V8 Key Commands
Use this skill to find the correct commands for common development tasks in V8.
This unifies the commands listed in workspace configuration and ensures
consistent usage.
## Building
V8 uses `gm.py` as a wrapper around GN and Ninja for building.
**Mandatory GN Args & Siso Remote Execution Guardrails**: Always include
`use_remoteexec = true` in your `args.gn` or via `gm.py` flags to ensure builds
utilize remote execution. Remote execution is mandatory in this environment.
**Critical Guardrail (Path Strictness)**: The target output directory must sit
exactly 2 levels deep relative to the project root (e.g., `out/x64.debug` or
`out/x64.release`).
- **Build (Debug):** `tools/dev/gm.py quiet x64.debug tests`
- **Build (Optimized Debug):** `tools/dev/gm.py quiet x64.optdebug tests`
- **Build (Release):** `tools/dev/gm.py quiet x64.release tests`
- **Sync DEPS Options:** Use `tools/dev/gm.py quiet x64.optdebug.d8 --sync` to
sync DEPS when switching between branches. Use the slower `--sync=force`
option if there are still issues with broken DEPS.
*Note: Always pass the `quiet` keyword unless told otherwise to avoid excessive
output.*
## Debugging
Run `d8` with GDB or LLDB for native code debugging.
```bash
# Example of running d8 with gdb
gdb --args out/x64.debug/d8 --my-flag my-script.js
```
### Common Diagnostic Flags
- `--trace-opt`: Log optimized functions.
- `--trace-deopt`: Log when and why functions are deoptimized.
- `--trace-gc`: Log garbage collection events.
- `--allow-natives-syntax`: Enables calling of internal V8 functions (e.g.,
`%OptimizeFunctionOnNextCall(f)`) from JavaScript for testing purposes.
- `--gdbjit`: Allows seeing Maglev graphs or JavaScript code in GDB backtraces.
To debug issues involving code motion disable gdbjit (as it disables code
motion).
A comprehensive list of all flags can be found by running
`out/x64.debug/d8 --help`.
## Testing
For detailed instructions on running tests and interpreting failures, see the
dedicated test execution guidelines.
Key commands summary:
- **Run tests:** `tools/run-tests.py --progress dots --outdir=out/x64.optdebug`
عرض على GitHub