| # Copyright 2013 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/compiler/compiler.gni") |
| |
| declare_args() { |
| # Stack traces will not include function names. Instead they will contain |
| # file and offset information that can be used with |
| # tools/valgrind/asan/asan_symbolize.py. By piping stderr through this script, |
| # and also enabling symbol_level = 2, you can get much more detailed stack |
| # traces with file names and line numbers, even in non-ASAN builds. |
| print_unsymbolized_stack_traces = is_asan || is_lsan || is_msan || is_tsan |
| } |
| |
| config("symbolize_config") { |
| defines = [ |
| # Only built for Linux and ChromeOS so no special export magic needed. |
| "GLOG_EXPORT=", |
| ] |
| } |
| |
| static_library("symbolize") { |
| visibility = [ "//base/*" ] |
| sources = [ |
| "config.h", |
| "demangle.cc", |
| "demangle.h", |
| "glog/logging.h", |
| "glog/raw_logging.h", |
| "symbolize.cc", |
| "symbolize.h", |
| "utilities.h", |
| ] |
| |
| defines = [] |
| |
| if (print_unsymbolized_stack_traces) { |
| defines += [ "PRINT_UNSYMBOLIZED_STACK_TRACES" ] |
| } |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| |
| public_configs = [ ":symbolize_config" ] |
| } |