src: add support for ETW stack walking

V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: https://github.com/nodejs/node/issues/46202
PR-URL: https://github.com/nodejs/node/pull/46203
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
This commit is contained in:
José Dapena Paz 2023-01-24 20:16:04 +01:00 committed by GitHub
parent e4d641f02a
commit b88628c7df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 0 deletions

View File

@ -1992,6 +1992,7 @@ V8 options that are allowed are:
* `--abort-on-uncaught-exception`
* `--disallow-code-generation-from-strings`
* `--enable-etw-stack-walking`
* `--huge-max-old-generation-size`
* `--interpreted-frames-native-stack`
* `--jitless`
@ -2008,6 +2009,8 @@ V8 options that are allowed are:
`--perf-basic-prof-only-functions`, `--perf-basic-prof`,
`--perf-prof-unwinding-info`, and `--perf-prof` are only available on Linux.
`--enable-etw-stack-walking` is only available on Windows.
### `NODE_PATH=path[:…]`
<!-- YAML

View File

@ -762,6 +762,10 @@ PerIsolateOptionsParser::PerIsolateOptionsParser(
&PerIsolateOptions::report_signal,
kAllowedInEnvvar);
Implies("--report-signal", "--report-on-signal");
AddOption("--enable-etw-stack-walking",
"provides heap data to ETW Windows native tracing",
V8Option{},
kAllowedInEnvvar);
AddOption("--experimental-top-level-await", "", NoOp{}, kAllowedInEnvvar);