0

List natvis files as inputs

BUG=985285
R=thakis
CC=robliao

Change-Id: Iac88eccb84ac9bd6d6b80e9268a7a6cda0534bef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1627706
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#680678}
This commit is contained in:
Tom Anderson
2019-07-25 00:36:17 +00:00
committed by Commit Bot
parent 1cb8ae5af1
commit 531253ee9d
7 changed files with 31 additions and 30 deletions
base
build/config/c++
buildtools/third_party/libc++
third_party/blink/renderer/platform/wtf
tools/win/DebugVisualizers

@ -1790,6 +1790,12 @@ jumbo_component("base") {
":base_win_linker_flags",
"//tools/win/DebugVisualizers:chrome",
]
inputs = [
# chrome.natvis listed as an input here instead of in
# //tools/win/DebugVisualizers:chrome to prevent unnecessary size increase
# in generated build files.
"//tools/win/DebugVisualizers/chrome.natvis",
]
}
# Desktop Mac.

@ -15,11 +15,6 @@ declare_args() {
# TODO(thomasanderson): Set this to true by default once rL352899 is available
# in MacOS's lldb.
libcxx_abi_unstable = !((is_mac || is_ios) && is_debug && is_component_build)
# Builds libcxx Natvis into the symbols for type visualization.
# Set to false to workaround http://crbug.com/966676 and
# http://crbug.com/966687.
libcxx_natvis_include = true
}
# TODO(xiaohuic): https://crbug/917533 Crashes on internal ChromeOS build.
@ -84,6 +79,8 @@ config("runtime_library") {
# Add a debug visualizer for Microsoft's debuggers so that they can display
# libc++ types well.
if (libcxx_natvis_include) {
# chrome.natvis listed as an input in //buildtools/third_party/libc++ to
# guarantee relinking on changes.
ldflags += [ "/NATVIS:" + rebase_path("libc++.natvis", root_build_dir) ]
}
} else {

@ -23,6 +23,11 @@ declare_args() {
# expected usage is to set use_custom_libcxx=false and
# use_custom_libcxx_for_host=true in the passed in buildargs.
use_custom_libcxx_for_host = false
# Builds libcxx Natvis into the symbols for type visualization.
# Set to false to workaround http://crbug.com/966676 and
# http://crbug.com/966687.
libcxx_natvis_include = true
}
use_custom_libcxx =

@ -91,6 +91,14 @@ target(_libcxx_target_type, "libc++") {
]
configs -= [ "//build/config/win:winver" ]
configs += [ ":winver" ]
if (libcxx_natvis_include) {
inputs = [
# libc++.natvis listed as an input here instead of in
# //build/config/c++:runtime_library to prevent unnecessary size
# increase in generated build files.
"//build/config/c++/libc++.natvis",
]
}
}
configs -= [
"//build/config/compiler:chromium_code",

@ -252,6 +252,12 @@ jumbo_component("wtf") {
# Inject Visual Studio debug visualizers for our types into all targets
# that reference this.
all_dependent_configs = [ "//tools/win/DebugVisualizers:webkit" ]
inputs = [
# webkit.natvis listed as an input here instead of in
# //tools/win/DebugVisualizers:webkit to prevent unnecessary size increase
# in generated build files.
"//tools/win/DebugVisualizers/webkit.natvis",
]
}
if (is_android) {

@ -12,22 +12,19 @@
# from their PDB files.
#
# See https://msdn.microsoft.com/en-us/library/jj620914.aspx for how they work.
#
# Since these only add ldflags, the targets themselves are not rebuilt when the
# natvis files are updated. To debug, erase the .pdb file and build to re-link.
import("//build/config/compiler/compiler.gni")
assert(is_win)
config("chrome") {
# chrome.natvis listed as an input in //base:base to guarantee relinking on
# changes.
ldflags = [ "/NATVIS:" + rebase_path("chrome.natvis", root_build_dir) ]
}
config("skia") {
ldflags = [ "/NATVIS:" + rebase_path("skia.natvis", root_build_dir) ]
}
config("webkit") {
# webkit.natvis listed as an input in
# //third_party/blink/renderer/platform/wtf to guarantee relinking on changes.
ldflags = [ "/NATVIS:" + rebase_path("webkit.natvis", root_build_dir) ]
}

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<AutoVisualizer
xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="SkPoint">
<AlternativeType Name="SkIPoint"/>
<DisplayString>({fX}, {fY})</DisplayString>
</Type>
<Type Name="SkSize">
<DisplayString>({fWidth}, {fHeight})</DisplayString>
</Type>
<Type Name="SkRect">
<AlternativeType Name="SkIRect"/>
<DisplayString>({fLeft}, {fTop}), ({fRight}, {fBottom})</DisplayString>
</Type>
<Type Name="LogFontTypeface">
<DisplayString>{fLogFont.lfFaceName,su}</DisplayString>
</Type>
</AutoVisualizer>