| # Copyright 2020 the V8 project authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("../../gni/v8.gni") |
| |
| config("v8windbg_config") { |
| # Required for successful compilation of SDK header file DbgModel.h. |
| cflags_cc = [ "/Zc:twoPhase-" ] |
| |
| include_dirs = [ "../.." ] |
| } |
| |
| # Basic support for WinDbg extensions, with nothing specific to V8. |
| source_set("v8windbg_base") { |
| testonly = true |
| |
| sources = [ |
| "base/dbgext.cc", |
| "base/dbgext.h", |
| "base/utilities.cc", |
| "base/utilities.h", |
| ] |
| |
| libs = [ |
| "DbgEng.lib", |
| "DbgModel.lib", |
| "RuntimeObject.lib", |
| "comsuppwd.lib", |
| ] |
| |
| public_configs = [ ":v8windbg_config" ] |
| } |
| |
| # An extension DLL that can be loaded into WinDbg with `.load v8windbg`. |
| v8_shared_library("v8windbg") { |
| testonly = true |
| |
| sources = [ |
| "base/dbgext.def", |
| "src/cur-isolate.cc", |
| "src/cur-isolate.h", |
| "src/list-chunks.cc", |
| "src/list-chunks.h", |
| "src/local-variables.cc", |
| "src/local-variables.h", |
| "src/object-inspection.cc", |
| "src/object-inspection.h", |
| "src/v8-debug-helper-interop.cc", |
| "src/v8-debug-helper-interop.h", |
| "src/v8windbg-extension.cc", |
| "src/v8windbg-extension.h", |
| ] |
| |
| deps = [ |
| ":v8windbg_base", |
| "../debug_helper:v8_debug_helper", |
| ] |
| } |
| |
| # Copies Windows SDK files that v8windbg_test needs. |
| action("copy_prereqs") { |
| testonly = true |
| |
| script = "copy-prereqs.py" |
| |
| inputs = [ |
| script, |
| "//build/vs_toolchain.py", |
| ] |
| |
| outputs = [ "$root_out_dir/dbgeng.dll" ] |
| |
| args = [ |
| rebase_path("//build"), |
| rebase_path(root_out_dir), |
| target_cpu, |
| ] |
| } |
| |
| # A test that launches a separate d8 process and debugs it using v8windbg. |
| v8_source_set("v8windbg_test") { |
| testonly = true |
| |
| sources = [ |
| "test/debug-callbacks.cc", |
| "test/debug-callbacks.h", |
| "test/v8windbg-test.cc", |
| "test/v8windbg-test.h", |
| ] |
| |
| deps = [ "../..:v8_libbase" ] # For CHECK macro. |
| |
| data_deps = [ |
| ":copy_prereqs", |
| ":v8windbg", |
| ":v8windbg_test_script", |
| "../..:d8", |
| ] |
| |
| libs = [ |
| "DbgEng.lib", |
| "DbgModel.lib", |
| "Pathcch.lib", |
| "RuntimeObject.lib", |
| ] |
| |
| configs = [ ":v8windbg_config" ] |
| } |
| |
| # Copies the JavaScript file used by v8windbg_test. |
| copy("v8windbg_test_script") { |
| testonly = true |
| sources = [ "test/script.js" ] |
| outputs = [ "$target_out_dir/v8windbg-test-script.js" ] |
| } |