{"record":{"id":"86031675e4299604","repo":"nodejs/node","slug":"enable-v8windbg-is-incompatible-with-without-b","errorCode":null,"errorMessage":"--enable-v8windbg is incompatible with --without-bundled-v8.","messagePattern":"--enable-v8windbg is incompatible with --without-bundled-v8\\.","errorType":"validation","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"configure.py","lineNumber":2244,"sourceCode":"        options.v8_disable_temporal_support = True\n      case 'system-icu':\n        warn('Temporal support disabled when compiling with a shared ICU library')\n        options.v8_disable_temporal_support = True\n  o['variables']['v8_enable_temporal_support'] = 0 if options.v8_disable_temporal_support else 1\n  o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0\n  o['variables']['v8_use_perfetto'] = 1 if options.with_perfetto else 0\n  o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform)\n  o['variables']['node_use_bundled_v8'] = b(not options.without_bundled_v8)\n  o['variables']['force_dynamic_crt'] = 1 if options.shared else 0\n  o['variables']['node_enable_d8'] = b(options.enable_d8)\n  o['variables']['node_enable_v8windbg'] = b(options.enable_v8windbg)\n  if options.enable_d8:\n    o['variables']['test_isolation_mode'] = 'noop'  # Needed by d8.gyp.\n  if options.without_bundled_v8:\n    if options.enable_d8:\n      raise Exception('--enable-d8 is incompatible with --without-bundled-v8.')\n    if options.enable_v8windbg:\n      raise Exception('--enable-v8windbg is incompatible with --without-bundled-v8.')\n    (pkg_libs, pkg_cflags, pkg_libpath, _) = pkg_config(\"v8\")\n    if pkg_libs and pkg_libpath:\n      output['libraries'] += [pkg_libpath] + pkg_libs.split()\n    if pkg_cflags:\n      output['include_dirs'] += [flag for flag in [flag.strip() for flag in pkg_cflags.split('-I')] if flag]\n  if options.static_zoslib_gyp:\n    o['variables']['static_zoslib_gyp'] = options.static_zoslib_gyp\n  if flavor != 'linux' and options.v8_enable_hugepage:\n    raise Exception('--v8-enable-hugepage is supported only on linux.')\n  o['variables']['v8_enable_hugepage'] = 1 if options.v8_enable_hugepage else 0\n  if options.v8_enable_short_builtin_calls or o['variables']['target_arch'] == 'x64':\n    o['variables']['v8_enable_short_builtin_calls'] = 1\n  if options.v8_enable_snapshot_compression:\n    o['variables']['v8_enable_snapshot_compression'] = 1\n  if all(opt in sys.argv for opt in ['--v8-enable-object-print', '--v8-disable-object-print']):\n    raise Exception(\n        'Only one of the --v8-enable-object-print or --v8-disable-object-print options '\n        'can be specified at a time.')","sourceCodeStart":2226,"sourceCodeEnd":2262,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/configure.py#L2226-L2262","documentation":"Node.js's configure.py rejects combining --enable-v8windbg with --without-bundled-v8. The v8windbg Visual Studio debugger extension needs the V8 sources that ship inside the Node tree (node_use_bundled_v8). With --without-bundled-v8, V8 is pulled in as an external prebuilt library via pkg_config(\"v8\"), so the debugger source files it would compile against no longer exist in the build.","triggerScenarios":"Invoked when options.without_bundled_v8 and options.enable_v8windbg are both truthy during configure_input / configure_node. Reached only inside the `if options.without_bundled_v8:` block, immediately after the analogous --enable-d8 guard.","commonSituations":"Distributions building Node against a system V8 package (Debian/Fedora) who copied a Windows-debugging flag from a build script; CI that sets --without-bundled-v8 globally and then layers feature flags on top.","solutions":["Remove --enable-v8windbg from the configure invocation when --without-bundled-v8 is set.","If you need v8windbg, drop --without-bundled-v8 so the bundled V8 tree is built.","Audit build scripts/cmake presets that template both flags together and gate v8windbg on the platform/build mode."],"exampleFix":"// before\n./configure --without-bundled-v8 --enable-v8windbg\n// after\n./configure --without-bundled-v8","handlingStrategy":"validation","validationCode":"import sys\nbundled_off = '--without-bundled-v8' in sys.argv\nwindbg_on = '--enable-v8windbg' in sys.argv\nassert not (bundled_off and windbg_on), 'enable-v8windbg needs bundled V8'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep all v8-related feature flags in one section of the build script and annotate which require --without-bundled-v8 to be absent.","Run a pre-flight argv validator that knows configure.py's mutual-exclusion rules before invoking configure."],"tags":["nodejs","configure","v8","build","flag-conflict"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}