Revert "Use the authoritative upstream source for Breakpad, move to third_party"
This reverts commit 5b41612edd
.
Reason for revert: https://crbug.com/768262
Original change's description:
> Use the authoritative upstream source for Breakpad, move to third_party
>
> Breakpad was being synced from a read-only mirror of a subdirectory
> rather than the authoritative upstream source. This encouraged Chrome
> developers to send patches against the read-only mirror. Those patches
> couldn’t be committed and needed to be duplicated in the correct
> repository. Once, a patch against the read-only mirror accidentally was
> committed, and it broke mirroring.
>
> This odd setup existed from the time of the git migration. Prior to
> that, Breakpad was hosted in Subversion, and Chrome incidentally pulled
> Breakpad’s src subdirectory rather than the entire trunk directory.
> Because it wasn‘t easy to do the same thing with git, the read-only
> mirror of src was created to avoid having to change lots of paths in
> Chrome. But now I’m changing the paths.
>
> This also moves Breakpad from the top-level breakpad directory in Chrome
> to third_party/breakpad. It should have been there all along, but
> Breakpad was one of the earliest dependencies added to Chrome, and at
> that time, there was no firm policy on where to put Google-originated
> external code.
>
> Bug: 766917
> TBR: pinkerton@chromium.org
> Change-Id: I860a3e92b0327898ba73b8678af258a9020eeaaf
> Reviewed-on: https://chromium-review.googlesource.com/677280
> Commit-Queue: Mark Mentovai <mark@chromium.org>
> Reviewed-by: Lei Zhang <thestig@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#503925}
TBR=thestig@chromium.org,pinkerton@chromium.org,mark@chromium.org
NOTREECHECKS=true
NOTRY=true
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: 766917
Change-Id: Ie1590163f53cc7180506101aacf6cf39964e1457
Reviewed-on: https://chromium-review.googlesource.com/681014
Commit-Queue: Peter Conn <peconn@chromium.org>
Reviewed-by: Peter Conn <peconn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504018}
This commit is contained in:
.gitignore.gnBUILD.gnDEPSPRESUBMIT.py
base
breakpad
BUILD.gnLICENSEOWNERSREADME.chromium
linux
minidump_fuzzer.ccminidump_fuzzer.dictsymupload.exeusing_breakpad.vspropschrome
chrome_elf
chromecast
app
crash
components
crash
content
nacl
broker
upload_list
content/shell
docs
ios
native_client_sdk/src
remoting
testing/buildbot
third_party
tools
1
.gitignore
vendored
1
.gitignore
vendored
@ -61,6 +61,7 @@ vs-chromium-project.txt
|
||||
/android_emulator_sdk
|
||||
/ash/ash_unittests_run.xml
|
||||
/base/base_unittests_run.xml
|
||||
/breakpad/src/
|
||||
# See build/.gitignore for entries covering src/build.
|
||||
/buildtools
|
||||
# The Chrome OS build creates a /c symlink due to http://crbug.com/54866.
|
||||
|
2
.gn
2
.gn
@ -64,6 +64,7 @@ check_targets = [
|
||||
"//ash/*",
|
||||
"//base/*",
|
||||
"//blink/*",
|
||||
"//breakpad/*",
|
||||
"//build/*",
|
||||
"//cc/*",
|
||||
|
||||
@ -134,7 +135,6 @@ check_targets = [
|
||||
"//testing/*",
|
||||
|
||||
#"//third_party/*", # May not ever want this.
|
||||
"//third_party/breakpad/*",
|
||||
"//third_party/brotli/*",
|
||||
"//third_party/hunspell/*",
|
||||
"//third_party/leveldatabase/*",
|
||||
|
46
BUILD.gn
46
BUILD.gn
@ -364,10 +364,10 @@ group("gn_all") {
|
||||
|
||||
if (is_linux || is_android) {
|
||||
deps += [
|
||||
"//third_party/breakpad:breakpad_unittests",
|
||||
"//third_party/breakpad:core-2-minidump",
|
||||
"//third_party/breakpad:generate_test_dump",
|
||||
"//third_party/breakpad:minidump-2-core",
|
||||
"//breakpad:breakpad_unittests",
|
||||
"//breakpad:core-2-minidump",
|
||||
"//breakpad:generate_test_dump",
|
||||
"//breakpad:minidump-2-core",
|
||||
]
|
||||
}
|
||||
|
||||
@ -508,16 +508,16 @@ group("gn_all") {
|
||||
|
||||
if (is_android || (is_linux && !is_chromeos)) {
|
||||
deps += [
|
||||
"//breakpad:dump_syms($host_toolchain)",
|
||||
"//breakpad:microdump_stackwalk($host_toolchain)",
|
||||
"//breakpad:minidump_dump($host_toolchain)",
|
||||
"//breakpad:minidump_stackwalk($host_toolchain)",
|
||||
"//components/network_hints/browser",
|
||||
"//content/public/app:browser",
|
||||
"//content/public/app:child",
|
||||
"//mojo/edk/test:mojo_public_system_perftests",
|
||||
"//services/service_manager/public/cpp",
|
||||
"//testing/gmock:gmock_main",
|
||||
"//third_party/breakpad:dump_syms($host_toolchain)",
|
||||
"//third_party/breakpad:microdump_stackwalk($host_toolchain)",
|
||||
"//third_party/breakpad:minidump_dump($host_toolchain)",
|
||||
"//third_party/breakpad:minidump_stackwalk($host_toolchain)",
|
||||
]
|
||||
|
||||
if (!is_android) {
|
||||
@ -547,9 +547,9 @@ group("gn_all") {
|
||||
|
||||
if (is_mac) {
|
||||
deps += [
|
||||
"//breakpad:crash_inspector",
|
||||
"//breakpad:dump_syms",
|
||||
"//third_party/apple_sample_code",
|
||||
"//third_party/breakpad:crash_inspector",
|
||||
"//third_party/breakpad:dump_syms",
|
||||
"//third_party/molokocacao",
|
||||
]
|
||||
deps -= [
|
||||
@ -585,7 +585,7 @@ group("gn_all") {
|
||||
[ "//chrome/installer/mini_installer:next_version_mini_installer" ]
|
||||
}
|
||||
} else if (!is_android && !is_ios && !is_fuchsia) {
|
||||
deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
|
||||
deps += [ "//breakpad:symupload($host_toolchain)" ]
|
||||
}
|
||||
|
||||
if (is_chromecast) {
|
||||
@ -813,13 +813,13 @@ if (is_chromeos) {
|
||||
group("chromiumos_preflight") {
|
||||
testonly = true
|
||||
deps = [
|
||||
"//breakpad:minidump_stackwalk($host_toolchain)",
|
||||
"//chrome",
|
||||
"//chrome/test/chromedriver",
|
||||
"//media:media_unittests",
|
||||
"//ppapi/examples/video_decode",
|
||||
"//sandbox/linux:chrome_sandbox",
|
||||
"//sandbox/linux:sandbox_linux_unittests",
|
||||
"//third_party/breakpad:minidump_stackwalk($host_toolchain)",
|
||||
|
||||
# Blocked on https://github.com/catapult-project/catapult/issues/2297
|
||||
#"//third_party/catapult/telemetry:bitmaptools",
|
||||
@ -913,12 +913,12 @@ if (!is_ios && !is_fuchsia) {
|
||||
|
||||
if (is_android) {
|
||||
data_deps += [
|
||||
"//third_party/breakpad:breakpad_unittests",
|
||||
"//third_party/breakpad:dump_syms",
|
||||
"//third_party/breakpad:microdump_stackwalk",
|
||||
"//third_party/breakpad:minidump_dump",
|
||||
"//third_party/breakpad:minidump_stackwalk",
|
||||
"//third_party/breakpad:symupload",
|
||||
"//breakpad:breakpad_unittests",
|
||||
"//breakpad:dump_syms",
|
||||
"//breakpad:microdump_stackwalk",
|
||||
"//breakpad:minidump_dump",
|
||||
"//breakpad:minidump_stackwalk",
|
||||
"//breakpad:symupload",
|
||||
"//tools/android/forwarder2",
|
||||
]
|
||||
}
|
||||
@ -928,16 +928,15 @@ if (!is_ios && !is_fuchsia) {
|
||||
}
|
||||
|
||||
if (!is_win && !is_android) {
|
||||
data_deps +=
|
||||
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
|
||||
data_deps += [ "//breakpad:minidump_stackwalk($host_toolchain)" ]
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
|
||||
data_deps += [ "//breakpad:dump_syms($host_toolchain)" ]
|
||||
}
|
||||
|
||||
if (is_linux) {
|
||||
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
|
||||
data_deps += [ "//breakpad:dump_syms($host_toolchain)" ]
|
||||
}
|
||||
|
||||
data = [
|
||||
@ -1055,8 +1054,7 @@ group("chromium_builder_perf") {
|
||||
"//chrome/test:angle_perftests",
|
||||
]
|
||||
} else {
|
||||
data_deps +=
|
||||
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
|
||||
data_deps += [ "//breakpad:minidump_stackwalk($host_toolchain)" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
6
DEPS
6
DEPS
@ -125,8 +125,8 @@ allowed_hosts = [
|
||||
]
|
||||
|
||||
deps = {
|
||||
'src/third_party/breakpad/breakpad':
|
||||
Var('chromium_git') + '/breakpad/breakpad.git' + '@' + '1c6d1613966eab5d77531e85f3b60c40124b43f0',
|
||||
'src/breakpad/src':
|
||||
Var('chromium_git') + '/breakpad/breakpad/src.git' + '@' + '6b59fc07474c9338e7727c52a6d8a92010a105ad',
|
||||
|
||||
'src/buildtools':
|
||||
Var('chromium_git') + '/chromium/buildtools.git' + '@' + Var('buildtools_revision'),
|
||||
@ -532,11 +532,11 @@ include_rules = [
|
||||
|
||||
# checkdeps.py shouldn't check include paths for files in these dirs:
|
||||
skip_child_includes = [
|
||||
'breakpad',
|
||||
'native_client_sdk',
|
||||
'out',
|
||||
'skia',
|
||||
'testing',
|
||||
'third_party/breakpad/breakpad',
|
||||
'v8',
|
||||
'win8',
|
||||
]
|
||||
|
@ -10,13 +10,13 @@ for more details about the presubmit API built into depot_tools.
|
||||
|
||||
|
||||
_EXCLUDED_PATHS = (
|
||||
r"^breakpad[\\\/].*",
|
||||
r"^native_client_sdk[\\\/]src[\\\/]build_tools[\\\/]make_rules.py",
|
||||
r"^native_client_sdk[\\\/]src[\\\/]build_tools[\\\/]make_simple.py",
|
||||
r"^native_client_sdk[\\\/]src[\\\/]tools[\\\/].*.mk",
|
||||
r"^net[\\\/]tools[\\\/]spdyshark[\\\/].*",
|
||||
r"^skia[\\\/].*",
|
||||
r"^third_party[\\\/](WebKit|blink)[\\\/].*",
|
||||
r"^third_party[\\\/]breakpad[\\\/].*",
|
||||
r"^v8[\\\/].*",
|
||||
r".*MakeFile$",
|
||||
r".+_autogen\.h$",
|
||||
|
@ -106,7 +106,7 @@ bool InitializeSymbols() {
|
||||
// we are using the Sym* functions. This is because breakpad does now
|
||||
// share a lock with this function. See this related bug:
|
||||
//
|
||||
// https://crbug.com/google-breakpad/311
|
||||
// http://code.google.com/p/google-breakpad/issues/detail?id=311
|
||||
//
|
||||
// This is a very unlikely edge case, and the current solution is to
|
||||
// just ignore it.
|
||||
|
@ -76,7 +76,7 @@ class PosixSpawnFileActions {
|
||||
void RestoreDefaultExceptionHandler() {
|
||||
// This function is tailored to remove the Breakpad exception handler.
|
||||
// exception_mask matches s_exception_mask in
|
||||
// third_party/breakpad/breakpad/src/client/mac/handler/exception_handler.cc
|
||||
// breakpad/src/client/mac/handler/exception_handler.cc
|
||||
const exception_mask_t exception_mask = EXC_MASK_BAD_ACCESS |
|
||||
EXC_MASK_BAD_INSTRUCTION |
|
||||
EXC_MASK_ARITHMETIC |
|
||||
|
993
breakpad/BUILD.gn
Normal file
993
breakpad/BUILD.gn
Normal file
@ -0,0 +1,993 @@
|
||||
# Copyright 2014 The Chromium 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("//build/symlink.gni")
|
||||
import("//testing/libfuzzer/fuzzer_test.gni")
|
||||
import("//testing/test.gni")
|
||||
|
||||
if (is_win) {
|
||||
import("//build/config/win/visual_studio_version.gni")
|
||||
}
|
||||
|
||||
config("tools_config") {
|
||||
include_dirs = [
|
||||
"src",
|
||||
"src/third_party",
|
||||
]
|
||||
if (is_android) {
|
||||
defines = [ "__ANDROID__" ]
|
||||
}
|
||||
if (is_clang) {
|
||||
cflags = [ "-Wno-tautological-constant-out-of-range-compare" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("internal_config") {
|
||||
include_dirs = [ "src" ]
|
||||
defines = []
|
||||
if (is_debug) {
|
||||
# This is needed for GTMLogger to work correctly.
|
||||
defines += [ "DEBUG" ]
|
||||
}
|
||||
if (is_android) {
|
||||
defines += [ "__ANDROID__" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("client_config") {
|
||||
include_dirs = [ "src" ]
|
||||
if (is_android) {
|
||||
include_dirs += [ "src/common/android/include" ]
|
||||
}
|
||||
if (is_chromeos) {
|
||||
defines = [ "__CHROMEOS__" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("handler_config") {
|
||||
include_dirs = [ "src" ]
|
||||
}
|
||||
|
||||
config("sender_config") {
|
||||
include_dirs = [ "src" ]
|
||||
}
|
||||
|
||||
config("breakpad_unittest_config") {
|
||||
# One of the breakpad unit tests test that we can detect the proper build-id.
|
||||
# We must override the build-id for this one target.
|
||||
ldflags = [ "-Wl,--build-id=0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f" ]
|
||||
}
|
||||
|
||||
# {micro,mini}dump_stackwalk and minidump_dump are tool-type executables
|
||||
# that do not build on Windows.
|
||||
if (!is_win) {
|
||||
if (current_toolchain == host_toolchain) {
|
||||
# Contains the code shared by both {micro,mini}dump_stackwalk.
|
||||
static_library("stackwalk_common") {
|
||||
# Always want these files included regardless of platform.
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/processor/basic_code_module.h",
|
||||
"src/processor/basic_code_modules.cc",
|
||||
"src/processor/basic_code_modules.h",
|
||||
"src/processor/basic_source_line_resolver.cc",
|
||||
"src/processor/call_stack.cc",
|
||||
"src/processor/cfi_frame_info.cc",
|
||||
"src/processor/cfi_frame_info.h",
|
||||
"src/processor/disassembler_x86.cc",
|
||||
"src/processor/disassembler_x86.h",
|
||||
"src/processor/dump_context.cc",
|
||||
"src/processor/dump_object.cc",
|
||||
"src/processor/logging.cc",
|
||||
"src/processor/logging.h",
|
||||
"src/processor/pathname_stripper.cc",
|
||||
"src/processor/pathname_stripper.h",
|
||||
"src/processor/proc_maps_linux.cc",
|
||||
"src/processor/process_state.cc",
|
||||
"src/processor/simple_symbol_supplier.cc",
|
||||
"src/processor/simple_symbol_supplier.h",
|
||||
"src/processor/source_line_resolver_base.cc",
|
||||
"src/processor/stack_frame_cpu.cc",
|
||||
"src/processor/stack_frame_symbolizer.cc",
|
||||
"src/processor/stackwalk_common.cc",
|
||||
"src/processor/stackwalker.cc",
|
||||
"src/processor/stackwalker_amd64.cc",
|
||||
"src/processor/stackwalker_amd64.h",
|
||||
"src/processor/stackwalker_arm.cc",
|
||||
"src/processor/stackwalker_arm.h",
|
||||
"src/processor/stackwalker_arm64.cc",
|
||||
"src/processor/stackwalker_arm64.h",
|
||||
"src/processor/stackwalker_mips.cc",
|
||||
"src/processor/stackwalker_mips.h",
|
||||
"src/processor/stackwalker_ppc.cc",
|
||||
"src/processor/stackwalker_ppc.h",
|
||||
"src/processor/stackwalker_ppc64.cc",
|
||||
"src/processor/stackwalker_ppc64.h",
|
||||
"src/processor/stackwalker_sparc.cc",
|
||||
"src/processor/stackwalker_sparc.h",
|
||||
"src/processor/stackwalker_x86.cc",
|
||||
"src/processor/stackwalker_x86.h",
|
||||
"src/processor/tokenize.cc",
|
||||
"src/processor/tokenize.h",
|
||||
|
||||
# libdisasm
|
||||
"src/third_party/libdisasm/ia32_implicit.c",
|
||||
"src/third_party/libdisasm/ia32_implicit.h",
|
||||
"src/third_party/libdisasm/ia32_insn.c",
|
||||
"src/third_party/libdisasm/ia32_insn.h",
|
||||
"src/third_party/libdisasm/ia32_invariant.c",
|
||||
"src/third_party/libdisasm/ia32_invariant.h",
|
||||
"src/third_party/libdisasm/ia32_modrm.c",
|
||||
"src/third_party/libdisasm/ia32_modrm.h",
|
||||
"src/third_party/libdisasm/ia32_opcode_tables.c",
|
||||
"src/third_party/libdisasm/ia32_opcode_tables.h",
|
||||
"src/third_party/libdisasm/ia32_operand.c",
|
||||
"src/third_party/libdisasm/ia32_operand.h",
|
||||
"src/third_party/libdisasm/ia32_reg.c",
|
||||
"src/third_party/libdisasm/ia32_reg.h",
|
||||
"src/third_party/libdisasm/ia32_settings.c",
|
||||
"src/third_party/libdisasm/ia32_settings.h",
|
||||
"src/third_party/libdisasm/libdis.h",
|
||||
"src/third_party/libdisasm/qword.h",
|
||||
"src/third_party/libdisasm/x86_disasm.c",
|
||||
"src/third_party/libdisasm/x86_format.c",
|
||||
"src/third_party/libdisasm/x86_imm.c",
|
||||
"src/third_party/libdisasm/x86_imm.h",
|
||||
"src/third_party/libdisasm/x86_insn.c",
|
||||
"src/third_party/libdisasm/x86_misc.c",
|
||||
"src/third_party/libdisasm/x86_operand_list.c",
|
||||
"src/third_party/libdisasm/x86_operand_list.h",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":tools_config" ]
|
||||
}
|
||||
|
||||
fuzzer_test("minidump_fuzzer") {
|
||||
sources = [
|
||||
"minidump_fuzzer.cc",
|
||||
"src/processor/exploitability.cc",
|
||||
"src/processor/minidump.cc",
|
||||
"src/processor/minidump_processor.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":stackwalk_common",
|
||||
"//base",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
include_dirs = [ "src" ]
|
||||
dict = "minidump_fuzzer.dict"
|
||||
|
||||
libfuzzer_options = [
|
||||
"close_fd_mask=3",
|
||||
"max_len=128000",
|
||||
]
|
||||
|
||||
# Always want these files included regardless of platform.
|
||||
set_sources_assignment_filter([])
|
||||
sources += [
|
||||
"src/processor/exploitability_linux.cc",
|
||||
"src/processor/exploitability_linux.h",
|
||||
"src/processor/exploitability_win.cc",
|
||||
"src/processor/exploitability_win.h",
|
||||
"src/processor/symbolic_constants_win.cc",
|
||||
"src/processor/symbolic_constants_win.h",
|
||||
]
|
||||
}
|
||||
|
||||
executable("microdump_stackwalk") {
|
||||
sources = [
|
||||
"src/processor/microdump.cc",
|
||||
"src/processor/microdump_processor.cc",
|
||||
"src/processor/microdump_stackwalk.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":stackwalk_common",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":tools_config" ]
|
||||
}
|
||||
|
||||
executable("minidump_stackwalk") {
|
||||
sources = [
|
||||
"src/processor/exploitability.cc",
|
||||
"src/processor/minidump.cc",
|
||||
"src/processor/minidump_processor.cc",
|
||||
"src/processor/minidump_stackwalk.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":stackwalk_common",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":tools_config" ]
|
||||
|
||||
# Always want these files included regardless of platform.
|
||||
set_sources_assignment_filter([])
|
||||
sources += [
|
||||
"src/processor/exploitability_linux.cc",
|
||||
"src/processor/exploitability_linux.h",
|
||||
"src/processor/exploitability_win.cc",
|
||||
"src/processor/exploitability_win.h",
|
||||
"src/processor/symbolic_constants_win.cc",
|
||||
"src/processor/symbolic_constants_win.h",
|
||||
]
|
||||
}
|
||||
|
||||
executable("minidump_dump") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/processor/basic_code_module.h",
|
||||
"src/processor/basic_code_modules.cc",
|
||||
"src/processor/basic_code_modules.h",
|
||||
"src/processor/dump_context.cc",
|
||||
"src/processor/dump_object.cc",
|
||||
"src/processor/logging.cc",
|
||||
"src/processor/logging.h",
|
||||
"src/processor/minidump.cc",
|
||||
"src/processor/minidump_dump.cc",
|
||||
"src/processor/pathname_stripper.cc",
|
||||
"src/processor/pathname_stripper.h",
|
||||
"src/processor/proc_maps_linux.cc",
|
||||
]
|
||||
|
||||
configs += [ ":tools_config" ]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
} else {
|
||||
# Aliases for convenience.
|
||||
binary_symlink("microdump_stackwalk") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("minidump_stackwalk") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("minidump_dump") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Mac --------------------------------------------------------------------------
|
||||
|
||||
if (is_mac) {
|
||||
if (current_toolchain == host_toolchain) {
|
||||
# TODO(GYP) This should be only 64-bit on Mac. From .gypi:
|
||||
# Like ld, dump_syms needs to operate on enough data that it may
|
||||
# actually need to be able to address more than 4GB. Use x86_64.
|
||||
# Don't worry! An x86_64 dump_syms is perfectly able to dump
|
||||
# 32-bit files.
|
||||
executable("dump_syms") {
|
||||
sources = [
|
||||
"src/common/dwarf/bytereader.cc",
|
||||
"src/common/dwarf/dwarf2diehandler.cc",
|
||||
"src/common/dwarf/dwarf2reader.cc",
|
||||
"src/common/dwarf/elf_reader.cc",
|
||||
"src/common/dwarf/elf_reader.h",
|
||||
"src/common/dwarf_cfi_to_module.cc",
|
||||
"src/common/dwarf_cu_to_module.cc",
|
||||
"src/common/dwarf_line_to_module.cc",
|
||||
"src/common/language.cc",
|
||||
"src/common/mac/arch_utilities.cc",
|
||||
"src/common/mac/arch_utilities.h",
|
||||
"src/common/mac/dump_syms.cc",
|
||||
"src/common/mac/file_id.cc",
|
||||
"src/common/mac/macho_id.cc",
|
||||
"src/common/mac/macho_reader.cc",
|
||||
"src/common/mac/macho_utilities.cc",
|
||||
"src/common/mac/macho_walker.cc",
|
||||
"src/common/md5.cc",
|
||||
"src/common/module.cc",
|
||||
"src/common/stabs_reader.cc",
|
||||
"src/common/stabs_to_module.cc",
|
||||
"src/tools/mac/dump_syms/dump_syms_tool.cc",
|
||||
]
|
||||
|
||||
# For src/common/stabs_reader.h.
|
||||
defines = [ "HAVE_MACH_O_NLIST_H" ]
|
||||
include_dirs = [ "src/common/mac" ]
|
||||
|
||||
# The DWARF utilities require -funsigned-char.
|
||||
cflags = [ "-funsigned-char" ]
|
||||
|
||||
configs += [ ":internal_config" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
# dwarf2reader.cc uses dynamic_cast.
|
||||
configs -= [ "//build/config/compiler:no_rtti" ]
|
||||
configs += [ "//build/config/compiler:rtti" ]
|
||||
|
||||
libs = [ "Foundation.framework" ]
|
||||
|
||||
if (!is_debug) {
|
||||
# dump_syms crashes when built at -O1, -O2, and -O3. It does
|
||||
# not crash at -Os. To play it safe, dump_syms is always built
|
||||
# at -O0 until this can be sorted out.
|
||||
# http://code.google.com/p/google-breakpad/issues/detail?id=329
|
||||
configs -= [ "//build/config/compiler:default_optimization" ]
|
||||
cflags += [ "-O0" ]
|
||||
}
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
executable("symupload") {
|
||||
sources = [
|
||||
"src/common/mac/HTTPMultipartUpload.m",
|
||||
"src/tools/mac/symupload/symupload.m",
|
||||
]
|
||||
|
||||
include_dirs = [ "src/common/mac" ]
|
||||
|
||||
libs = [ "Foundation.framework" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
} else {
|
||||
binary_symlink("dump_syms") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("symupload") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_ios) {
|
||||
binary_symlink("dump_syms") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("symupload") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
static_library("utilities") {
|
||||
sources = [
|
||||
"src/client/mac/crash_generation/ConfigFile.mm",
|
||||
"src/client/mac/handler/breakpad_nlist_64.cc",
|
||||
"src/client/mac/handler/dynamic_images.cc",
|
||||
"src/client/mac/handler/minidump_generator.cc",
|
||||
"src/client/minidump_file_writer.cc",
|
||||
"src/common/convert_UTF.c",
|
||||
"src/common/mac/MachIPC.mm",
|
||||
"src/common/mac/arch_utilities.cc",
|
||||
"src/common/mac/bootstrap_compat.cc",
|
||||
"src/common/mac/file_id.cc",
|
||||
"src/common/mac/launch_reporter.cc",
|
||||
"src/common/mac/macho_id.cc",
|
||||
"src/common/mac/macho_utilities.cc",
|
||||
"src/common/mac/macho_walker.cc",
|
||||
"src/common/mac/string_utilities.cc",
|
||||
"src/common/md5.cc",
|
||||
"src/common/simple_string_dictionary.cc",
|
||||
"src/common/string_conversion.cc",
|
||||
]
|
||||
|
||||
configs += [ ":internal_config" ]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
executable("crash_inspector") {
|
||||
sources = [
|
||||
"src/client/mac/crash_generation/Inspector.mm",
|
||||
"src/client/mac/crash_generation/InspectorMain.mm",
|
||||
]
|
||||
|
||||
# TODO(GYP): 'mac_real_dsym': 1,
|
||||
|
||||
include_dirs = [
|
||||
"src/client/apple/Framework",
|
||||
"src/common/mac",
|
||||
"src",
|
||||
]
|
||||
libs = [
|
||||
"CoreServices.framework",
|
||||
"Foundation.framework",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":utilities",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
# TODO(GYP) this target has some mac_bundle_resources stuff.
|
||||
# executable("crash_report_sender") {
|
||||
# }
|
||||
group("crash_report_sender") {
|
||||
}
|
||||
|
||||
config("breakpad_config") {
|
||||
include_dirs = [ "src/client/apple/Framework" ]
|
||||
}
|
||||
|
||||
static_library("breakpad") {
|
||||
sources = [
|
||||
"src/client/mac/Framework/Breakpad.mm",
|
||||
"src/client/mac/Framework/OnDemandServer.mm",
|
||||
"src/client/mac/crash_generation/crash_generation_client.cc",
|
||||
"src/client/mac/crash_generation/crash_generation_client.h",
|
||||
"src/client/mac/handler/exception_handler.cc",
|
||||
"src/client/mac/handler/protected_memory_allocator.cc",
|
||||
]
|
||||
|
||||
configs += [ ":internal_config" ]
|
||||
public_configs = [ ":breakpad_config" ]
|
||||
|
||||
defines = [ "USE_PROTECTED_ALLOCATIONS=1" ]
|
||||
include_dirs = [ "src/client/apple/Framework" ]
|
||||
|
||||
deps = [
|
||||
":crash_inspector",
|
||||
":crash_report_sender",
|
||||
":utilities",
|
||||
]
|
||||
}
|
||||
|
||||
group("client") {
|
||||
public_configs = [ ":client_config" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_linux || is_android) {
|
||||
if (current_toolchain == host_toolchain) {
|
||||
executable("symupload") {
|
||||
sources = [
|
||||
"src/common/linux/http_upload.cc",
|
||||
"src/common/linux/http_upload.h",
|
||||
"src/common/linux/symbol_upload.cc",
|
||||
"src/common/linux/symbol_upload.h",
|
||||
"src/tools/linux/symupload/sym_upload.cc",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"src",
|
||||
"src/third_party",
|
||||
]
|
||||
|
||||
configs += [ ":tools_config" ]
|
||||
|
||||
libs = [ "dl" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
# dump_syms is a host tool, so only compile it for the host system.
|
||||
executable("dump_syms") {
|
||||
sources = [
|
||||
"src/common/dwarf/bytereader.cc",
|
||||
"src/common/dwarf/dwarf2diehandler.cc",
|
||||
"src/common/dwarf/dwarf2reader.cc",
|
||||
"src/common/dwarf/elf_reader.cc",
|
||||
"src/common/dwarf/elf_reader.h",
|
||||
"src/common/dwarf_cfi_to_module.cc",
|
||||
"src/common/dwarf_cfi_to_module.h",
|
||||
"src/common/dwarf_cu_to_module.cc",
|
||||
"src/common/dwarf_cu_to_module.h",
|
||||
"src/common/dwarf_line_to_module.cc",
|
||||
"src/common/dwarf_line_to_module.h",
|
||||
"src/common/language.cc",
|
||||
"src/common/language.h",
|
||||
"src/common/linux/crc32.cc",
|
||||
"src/common/linux/crc32.h",
|
||||
"src/common/linux/dump_symbols.cc",
|
||||
"src/common/linux/dump_symbols.h",
|
||||
"src/common/linux/elf_symbols_to_module.cc",
|
||||
"src/common/linux/elf_symbols_to_module.h",
|
||||
"src/common/linux/elfutils.cc",
|
||||
"src/common/linux/elfutils.h",
|
||||
"src/common/linux/file_id.cc",
|
||||
"src/common/linux/file_id.h",
|
||||
"src/common/linux/guid_creator.h",
|
||||
"src/common/linux/linux_libc_support.cc",
|
||||
"src/common/linux/linux_libc_support.h",
|
||||
"src/common/linux/memory_mapped_file.cc",
|
||||
"src/common/linux/memory_mapped_file.h",
|
||||
"src/common/module.cc",
|
||||
"src/common/module.h",
|
||||
"src/common/stabs_reader.cc",
|
||||
"src/common/stabs_reader.h",
|
||||
"src/common/stabs_to_module.cc",
|
||||
"src/common/stabs_to_module.h",
|
||||
"src/tools/linux/dump_syms/dump_syms.cc",
|
||||
]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
# dwarf2reader.cc uses dynamic_cast. Because we don't typically
|
||||
# don't support RTTI, we enable it for this single target. Since
|
||||
# dump_syms doesn't share any object files with anything else,
|
||||
# this doesn't end up polluting Chrome itself.
|
||||
configs -= [ "//build/config/compiler:no_rtti" ]
|
||||
configs += [ "//build/config/compiler:rtti" ]
|
||||
|
||||
# Breakpad rev 583 introduced this flag.
|
||||
# Using this define, stabs_reader.h will include a.out.h to
|
||||
# build on Linux.
|
||||
defines = [ "HAVE_A_OUT_H" ]
|
||||
|
||||
include_dirs = [ "src" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
} else {
|
||||
# Aliases for convenience.
|
||||
binary_symlink("dump_syms") {
|
||||
binary_label = ":dump_syms($host_toolchain)"
|
||||
}
|
||||
binary_symlink("symupload") {
|
||||
binary_label = ":symupload($host_toolchain)"
|
||||
}
|
||||
}
|
||||
|
||||
static_library("client") {
|
||||
# Want all these sources for both Linux and Android.
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/client/linux/crash_generation/crash_generation_client.cc",
|
||||
"src/client/linux/crash_generation/crash_generation_client.h",
|
||||
"src/client/linux/dump_writer_common/mapping_info.h",
|
||||
"src/client/linux/dump_writer_common/thread_info.cc",
|
||||
"src/client/linux/dump_writer_common/thread_info.h",
|
||||
"src/client/linux/dump_writer_common/ucontext_reader.cc",
|
||||
"src/client/linux/dump_writer_common/ucontext_reader.h",
|
||||
"src/client/linux/handler/exception_handler.cc",
|
||||
"src/client/linux/handler/exception_handler.h",
|
||||
"src/client/linux/handler/minidump_descriptor.cc",
|
||||
"src/client/linux/handler/minidump_descriptor.h",
|
||||
"src/client/linux/log/log.cc",
|
||||
"src/client/linux/log/log.h",
|
||||
"src/client/linux/microdump_writer/microdump_writer.cc",
|
||||
"src/client/linux/microdump_writer/microdump_writer.h",
|
||||
"src/client/linux/minidump_writer/cpu_set.h",
|
||||
"src/client/linux/minidump_writer/directory_reader.h",
|
||||
"src/client/linux/minidump_writer/line_reader.h",
|
||||
"src/client/linux/minidump_writer/linux_core_dumper.cc",
|
||||
"src/client/linux/minidump_writer/linux_core_dumper.h",
|
||||
"src/client/linux/minidump_writer/linux_dumper.cc",
|
||||
"src/client/linux/minidump_writer/linux_dumper.h",
|
||||
"src/client/linux/minidump_writer/linux_ptrace_dumper.cc",
|
||||
"src/client/linux/minidump_writer/linux_ptrace_dumper.h",
|
||||
"src/client/linux/minidump_writer/minidump_writer.cc",
|
||||
"src/client/linux/minidump_writer/minidump_writer.h",
|
||||
"src/client/linux/minidump_writer/proc_cpuinfo_reader.h",
|
||||
"src/client/minidump_file_writer-inl.h",
|
||||
"src/client/minidump_file_writer.cc",
|
||||
"src/client/minidump_file_writer.h",
|
||||
"src/common/convert_UTF.c",
|
||||
"src/common/convert_UTF.h",
|
||||
"src/common/linux/elf_core_dump.cc",
|
||||
"src/common/linux/elf_core_dump.h",
|
||||
"src/common/linux/elfutils.cc",
|
||||
"src/common/linux/elfutils.h",
|
||||
"src/common/linux/file_id.cc",
|
||||
"src/common/linux/file_id.h",
|
||||
"src/common/linux/google_crashdump_uploader.cc",
|
||||
"src/common/linux/google_crashdump_uploader.h",
|
||||
"src/common/linux/guid_creator.cc",
|
||||
"src/common/linux/guid_creator.h",
|
||||
"src/common/linux/libcurl_wrapper.cc",
|
||||
"src/common/linux/libcurl_wrapper.h",
|
||||
"src/common/linux/linux_libc_support.cc",
|
||||
"src/common/linux/linux_libc_support.h",
|
||||
"src/common/linux/memory_mapped_file.cc",
|
||||
"src/common/linux/memory_mapped_file.h",
|
||||
"src/common/linux/safe_readlink.cc",
|
||||
"src/common/linux/safe_readlink.h",
|
||||
"src/common/memory.h",
|
||||
"src/common/simple_string_dictionary.cc",
|
||||
"src/common/simple_string_dictionary.h",
|
||||
"src/common/string_conversion.cc",
|
||||
"src/common/string_conversion.h",
|
||||
]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
public_configs = [ ":client_config" ]
|
||||
|
||||
if (current_cpu == "arm" && is_chromeos) {
|
||||
# Avoid running out of registers in
|
||||
# linux_syscall_support.h:sys_clone()'s inline assembly.
|
||||
cflags = [ "-marm" ]
|
||||
}
|
||||
|
||||
# Clang's -mstackrealign doesn't work well with
|
||||
# linux_syscall_support.h hand written asm syscalls.
|
||||
# See https://crbug.com/556393
|
||||
configs -= [ "//build/config/compiler:clang_stackrealign" ]
|
||||
|
||||
if (is_android) {
|
||||
sources += [ "src/common/android/breakpad_getcontext.S" ]
|
||||
}
|
||||
|
||||
libs = [ "dl" ]
|
||||
|
||||
include_dirs = [
|
||||
".",
|
||||
"src",
|
||||
"src/client",
|
||||
"src/third_party/linux/include",
|
||||
]
|
||||
}
|
||||
|
||||
static_library("processor_support") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/common/scoped_ptr.h",
|
||||
"src/processor/basic_code_modules.cc",
|
||||
"src/processor/basic_code_modules.h",
|
||||
"src/processor/dump_context.cc",
|
||||
"src/processor/dump_object.cc",
|
||||
"src/processor/logging.cc",
|
||||
"src/processor/logging.h",
|
||||
"src/processor/minidump.cc",
|
||||
"src/processor/pathname_stripper.cc",
|
||||
"src/processor/pathname_stripper.h",
|
||||
"src/processor/proc_maps_linux.cc",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"src",
|
||||
"src/client",
|
||||
"src/third_party/linux/include",
|
||||
".",
|
||||
]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
test("breakpad_unittests") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"linux/breakpad_googletest_includes.h",
|
||||
"src/client/linux/handler/exception_handler_unittest.cc",
|
||||
"src/client/linux/minidump_writer/cpu_set_unittest.cc",
|
||||
"src/client/linux/minidump_writer/directory_reader_unittest.cc",
|
||||
"src/client/linux/minidump_writer/line_reader_unittest.cc",
|
||||
"src/client/linux/minidump_writer/linux_core_dumper_unittest.cc",
|
||||
"src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc",
|
||||
"src/client/linux/minidump_writer/minidump_writer_unittest.cc",
|
||||
"src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc",
|
||||
"src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc",
|
||||
"src/common/linux/elf_core_dump_unittest.cc",
|
||||
"src/common/linux/file_id_unittest.cc",
|
||||
"src/common/linux/linux_libc_support_unittest.cc",
|
||||
"src/common/linux/synth_elf.cc",
|
||||
"src/common/linux/tests/auto_testfile.h",
|
||||
"src/common/linux/tests/crash_generator.cc",
|
||||
"src/common/linux/tests/crash_generator.h",
|
||||
"src/common/memory_range.h",
|
||||
"src/common/memory_unittest.cc",
|
||||
"src/common/simple_string_dictionary_unittest.cc",
|
||||
"src/common/test_assembler.cc",
|
||||
"src/common/tests/file_utils.cc",
|
||||
"src/common/tests/file_utils.h",
|
||||
"src/tools/linux/md2core/minidump_memory_range.h",
|
||||
"src/tools/linux/md2core/minidump_memory_range_unittest.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
":linux_dumper_unittest_helper",
|
||||
":processor_support",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
"//testing/gmock",
|
||||
"//testing/gtest",
|
||||
"//testing/gtest:gtest_main",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"linux", # Use our copy of breakpad_googletest_includes.h
|
||||
".",
|
||||
]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [
|
||||
":client_config",
|
||||
"//build/config/compiler:no_chromium_code",
|
||||
]
|
||||
|
||||
if (is_clang) {
|
||||
# See http://crbug.com/138571#c18
|
||||
cflags = [ "-Wno-unused-value" ]
|
||||
}
|
||||
|
||||
if (is_android) {
|
||||
use_raw_android_executable = true
|
||||
sources += [ "src/common/android/breakpad_getcontext_unittest.cc" ]
|
||||
libs = [ "log" ]
|
||||
extra_dist_files = [ "$root_out_dir/linux_dumper_unittest_helper" ]
|
||||
}
|
||||
|
||||
# Clang's -mstackrealign doesn't work well with
|
||||
# linux_syscall_support.h hand written asm syscalls.
|
||||
# See https://crbug.com/556393
|
||||
configs -= [ "//build/config/compiler:clang_stackrealign" ]
|
||||
|
||||
# Add the breakpad unittest config at the end to override all configs.
|
||||
configs += [ ":breakpad_unittest_config" ]
|
||||
}
|
||||
|
||||
executable("linux_dumper_unittest_helper") {
|
||||
set_sources_assignment_filter([])
|
||||
testonly = true
|
||||
sources = [
|
||||
"src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc",
|
||||
]
|
||||
deps = [
|
||||
":processor_support",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
configs += [ ":client_config" ]
|
||||
|
||||
if (is_component_build) {
|
||||
ldflags = [
|
||||
"-Wl,-rpath,",
|
||||
rebase_path(root_build_dir),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
executable("generate_test_dump") {
|
||||
set_sources_assignment_filter([])
|
||||
testonly = true
|
||||
sources = [
|
||||
"linux/generate-test-dump.cc",
|
||||
]
|
||||
|
||||
# This file has an unused variable warning.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [
|
||||
":client_config",
|
||||
"//build/config/compiler:no_chromium_code",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
if (is_android) {
|
||||
libs = [ "log" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("minidump-2-core") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/tools/linux/md2core/minidump-2-core.cc",
|
||||
]
|
||||
|
||||
include_dirs = [ "src" ]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
executable("core-2-minidump") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/tools/linux/core2md/core2md.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
include_dirs = [ "src" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
executable("dump_syms") {
|
||||
# TODO(scottmg) using this with VS2015 may break the crash server.
|
||||
# https://crbug.com/696671
|
||||
include_dirs = [
|
||||
"$visual_studio_path/DIA SDK/include",
|
||||
"src",
|
||||
]
|
||||
|
||||
sources = [
|
||||
"src/common/windows/dia_util.cc",
|
||||
"src/common/windows/dia_util.h",
|
||||
"src/common/windows/guid_string.cc",
|
||||
"src/common/windows/guid_string.h",
|
||||
"src/common/windows/omap.cc",
|
||||
"src/common/windows/omap.h",
|
||||
"src/common/windows/pdb_source_line_writer.cc",
|
||||
"src/common/windows/pdb_source_line_writer.h",
|
||||
"src/common/windows/string_utils-inl.h",
|
||||
"src/common/windows/string_utils.cc",
|
||||
"src/tools/windows/dump_syms/dump_syms.cc",
|
||||
]
|
||||
|
||||
lib_dirs = []
|
||||
if (target_cpu == "x64") {
|
||||
lib_dirs += [ "$visual_studio_path/DIA SDK/lib/amd64" ]
|
||||
} else {
|
||||
lib_dirs += [ "$visual_studio_path/DIA SDK/lib" ]
|
||||
}
|
||||
|
||||
libs = [
|
||||
"diaguids.lib",
|
||||
"imagehlp.lib",
|
||||
]
|
||||
if (is_clang) {
|
||||
# clang complains about microsoft-specific goto extensions. Instead of
|
||||
# rewriting decade-old, goto-ridden code, disable the warning.
|
||||
cflags = [ "-Wno-microsoft-goto" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_ios) {
|
||||
static_library("client") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"src/client/ios/Breakpad.h",
|
||||
"src/client/ios/Breakpad.mm",
|
||||
"src/client/ios/BreakpadController.h",
|
||||
"src/client/ios/BreakpadController.mm",
|
||||
"src/client/ios/handler/ios_exception_minidump_generator.h",
|
||||
"src/client/ios/handler/ios_exception_minidump_generator.mm",
|
||||
"src/client/mac/crash_generation/ConfigFile.h",
|
||||
"src/client/mac/crash_generation/ConfigFile.mm",
|
||||
"src/client/mac/handler/breakpad_nlist_64.cc",
|
||||
"src/client/mac/handler/breakpad_nlist_64.h",
|
||||
"src/client/mac/handler/dynamic_images.cc",
|
||||
"src/client/mac/handler/dynamic_images.h",
|
||||
"src/client/mac/handler/exception_handler.cc",
|
||||
"src/client/mac/handler/exception_handler.h",
|
||||
"src/client/mac/handler/minidump_generator.cc",
|
||||
"src/client/mac/handler/minidump_generator.h",
|
||||
"src/client/mac/handler/protected_memory_allocator.cc",
|
||||
"src/client/mac/handler/protected_memory_allocator.h",
|
||||
"src/client/mac/sender/uploader.h",
|
||||
"src/client/mac/sender/uploader.mm",
|
||||
"src/client/minidump_file_writer-inl.h",
|
||||
"src/client/minidump_file_writer.cc",
|
||||
"src/client/minidump_file_writer.h",
|
||||
"src/common/convert_UTF.c",
|
||||
"src/common/convert_UTF.h",
|
||||
"src/common/mac/HTTPMultipartUpload.m",
|
||||
"src/common/mac/file_id.cc",
|
||||
"src/common/mac/file_id.h",
|
||||
"src/common/mac/macho_id.cc",
|
||||
"src/common/mac/macho_id.h",
|
||||
"src/common/mac/macho_utilities.cc",
|
||||
"src/common/mac/macho_utilities.h",
|
||||
"src/common/mac/macho_walker.cc",
|
||||
"src/common/mac/macho_walker.h",
|
||||
"src/common/mac/string_utilities.cc",
|
||||
"src/common/mac/string_utilities.h",
|
||||
"src/common/md5.cc",
|
||||
"src/common/md5.h",
|
||||
"src/common/simple_string_dictionary.cc",
|
||||
"src/common/simple_string_dictionary.h",
|
||||
"src/common/string_conversion.cc",
|
||||
"src/common/string_conversion.h",
|
||||
"src/google_breakpad/common/minidump_format.h",
|
||||
]
|
||||
set_sources_assignment_filter(sources_assignment_filter)
|
||||
|
||||
include_dirs = [
|
||||
"src",
|
||||
"src/client/mac/Framework",
|
||||
"src/common/mac",
|
||||
]
|
||||
|
||||
deps = [
|
||||
"//third_party/google_toolbox_for_mac",
|
||||
]
|
||||
|
||||
public_configs = [ ":client_config" ]
|
||||
|
||||
if (is_clang) {
|
||||
# See https://bugs.chromium.org/p/google-breakpad/issues/detail?id=675.
|
||||
cflags = [ "-Wno-deprecated-declarations" ]
|
||||
}
|
||||
}
|
||||
# TODO(GYP) There is some XCode-only targets like ninja-breakpad.
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
group("client") {
|
||||
public_configs = [ ":client_config" ]
|
||||
}
|
||||
|
||||
config("breakpad_handler_warnings") {
|
||||
if (is_clang) {
|
||||
# See https://code.google.com/p/google-breakpad/issues/detail?id=658.
|
||||
cflags = [ "-Wno-reorder" ]
|
||||
}
|
||||
}
|
||||
|
||||
static_library("breakpad_handler") {
|
||||
configs += [ ":handler_config" ]
|
||||
if (is_win) {
|
||||
public_configs = [ ":handler_config" ]
|
||||
}
|
||||
|
||||
defines = [ "BREAKPAD_NO_TERMINATE_THREAD" ]
|
||||
|
||||
sources = [
|
||||
"src/client/windows/crash_generation/client_info.cc",
|
||||
"src/client/windows/crash_generation/client_info.h",
|
||||
"src/client/windows/crash_generation/crash_generation_client.cc",
|
||||
"src/client/windows/crash_generation/crash_generation_client.h",
|
||||
"src/client/windows/crash_generation/crash_generation_server.cc",
|
||||
"src/client/windows/crash_generation/crash_generation_server.h",
|
||||
"src/client/windows/crash_generation/minidump_generator.cc",
|
||||
"src/client/windows/crash_generation/minidump_generator.h",
|
||||
"src/client/windows/handler/exception_handler.cc",
|
||||
"src/client/windows/handler/exception_handler.h",
|
||||
"src/common/windows/guid_string.cc",
|
||||
"src/common/windows/guid_string.h",
|
||||
"src/common/windows/string_utils-inl.h",
|
||||
"src/google_breakpad/common/minidump_format.h",
|
||||
]
|
||||
configs += [ ":breakpad_handler_warnings" ]
|
||||
}
|
||||
|
||||
source_set("breakpad_sender") {
|
||||
sources = [
|
||||
"src/client/windows/sender/crash_report_sender.cc",
|
||||
"src/client/windows/sender/crash_report_sender.h",
|
||||
"src/common/windows/http_upload.cc",
|
||||
"src/common/windows/http_upload.h",
|
||||
]
|
||||
configs += [ ":sender_config" ]
|
||||
public_configs = [ ":sender_config" ]
|
||||
}
|
||||
}
|
12
breakpad/README.chromium
Normal file
12
breakpad/README.chromium
Normal file
@ -0,0 +1,12 @@
|
||||
Name: Breakpad, An open-source multi-platform crash reporting system
|
||||
Short Name: breakpad
|
||||
URL: https://chromium.googlesource.com/breakpad/breakpad
|
||||
License: New BSD, Apple PSL 2.0 and Apache 2.0
|
||||
Security Critical: no
|
||||
|
||||
This directory contains Chrome's version of Breakpad's Visual Studio build
|
||||
files (*.vcproj) and a compiled version of Breakpad's symupload.exe utility
|
||||
for Windows.
|
||||
|
||||
Part of the upstream Breakpad project is pulled into the src/ subdirectory via
|
||||
DEPS.
|
@ -30,7 +30,7 @@
|
||||
#ifndef BREAKPAD_GOOGLETEST_INCLUDES_H__
|
||||
#define BREAKPAD_GOOGLETEST_INCLUDES_H__
|
||||
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
|
||||
#endif // BREAKPAD_GOOGLETEST_INCLUDES_H__
|
@ -33,13 +33,12 @@
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "third_party/breakpad/breakpad/src/common/linux/linux_libc_support.h"
|
||||
#include "breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "breakpad/src/common/linux/linux_libc_support.h"
|
||||
#include "third_party/lss/linux_syscall_support.h"
|
||||
|
||||
static bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor,
|
||||
void* context,
|
||||
bool success) {
|
||||
void* context, bool success) {
|
||||
if (!success) {
|
||||
static const char msg[] = "Failed to write minidump\n";
|
||||
sys_write(2, msg, sizeof(msg) - 1);
|
@ -6,9 +6,9 @@
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <streambuf>
|
||||
#include <istream>
|
||||
#include <memory>
|
||||
#include <streambuf>
|
||||
|
||||
#include "base/memory/free_deleter.h"
|
||||
#include "google_breakpad/processor/basic_source_line_resolver.h"
|
@ -6,6 +6,6 @@
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(SolutionDir)..\third_party\breakpad\breakpad\src""
|
||||
AdditionalIncludeDirectories=""$(SolutionDir)..\breakpad\src""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
@ -199,6 +199,8 @@ if (!is_android && !is_mac) {
|
||||
":file_pre_reader",
|
||||
":visual_elements_resources",
|
||||
"//base",
|
||||
"//breakpad:breakpad_handler",
|
||||
"//breakpad:breakpad_sender",
|
||||
"//chrome/app/version_assembly:chrome_exe_manifest",
|
||||
"//chrome/browser:active_use_util",
|
||||
"//chrome/browser:chrome_process_finder",
|
||||
@ -217,8 +219,6 @@ if (!is_android && !is_mac) {
|
||||
"//crypto",
|
||||
"//gpu/config:crash_keys",
|
||||
"//sandbox",
|
||||
"//third_party/breakpad:breakpad_handler",
|
||||
"//third_party/breakpad:breakpad_sender",
|
||||
]
|
||||
data_deps = [
|
||||
"//chrome/app/version_assembly:version_assembly_manifest",
|
||||
@ -1366,8 +1366,8 @@ if (is_win) {
|
||||
":chrome_app",
|
||||
":chrome_framework",
|
||||
":chrome_helper_app",
|
||||
"//breakpad:dump_syms",
|
||||
"//chrome/browser/ui/cocoa/notifications:alert_notification_xpc_service",
|
||||
"//third_party/breakpad:dump_syms",
|
||||
"//third_party/crashpad/crashpad/handler:crashpad_handler",
|
||||
]
|
||||
}
|
||||
@ -1821,7 +1821,7 @@ if (is_linux) {
|
||||
action("linux_symbols") {
|
||||
script = "//build/linux/dump_app_syms.py"
|
||||
|
||||
dump_syms_label = "//third_party/breakpad:dump_syms($host_toolchain)"
|
||||
dump_syms_label = "//breakpad:dump_syms($host_toolchain)"
|
||||
dump_syms_binary =
|
||||
get_label_info(dump_syms_label, "root_out_dir") + "/" + "dump_syms"
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
include_rules = [
|
||||
"+breakpad",
|
||||
"+chrome/browser",
|
||||
"+chrome/child",
|
||||
"+chrome/chrome_watcher",
|
||||
@ -37,6 +38,5 @@ include_rules = [
|
||||
"+sandbox",
|
||||
"+services/service_manager",
|
||||
"+services/ui/public",
|
||||
"+third_party/breakpad/breakpad",
|
||||
"+third_party/crashpad/crashpad",
|
||||
]
|
||||
|
@ -3,7 +3,7 @@
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="chrome_binaries"
|
||||
InheritedPropertySheets="$(SolutionDir)..\third_party\ffmpeg\using_ffmpeg.vsprops;$(SolutionDir)..\third_party\breakpad\using_breakpad.vsprops;$(SolutionDir)..\third_party\libxml\build\using_libxml.vsprops;$(SolutionDir)..\third_party\libxslt\build\using_libxslt.vsprops;$(SolutionDir)..\skia\using_skia.vsprops;$(SolutionDir)..\third_party\libpng\using_libpng.vsprops;$(SolutionDir)..\tools\grit\build\using_generated_resources.vsprops;$(SolutionDir)third_party\wtl\using_wtl.vsprops"
|
||||
InheritedPropertySheets="$(SolutionDir)..\third_party\ffmpeg\using_ffmpeg.vsprops;$(SolutionDir)..\breakpad\using_breakpad.vsprops;$(SolutionDir)..\third_party\libxml\build\using_libxml.vsprops;$(SolutionDir)..\third_party\libxslt\build\using_libxslt.vsprops;$(SolutionDir)..\skia\using_skia.vsprops;$(SolutionDir)..\third_party\libpng\using_libpng.vsprops;$(SolutionDir)..\tools\grit\build\using_generated_resources.vsprops;$(SolutionDir)third_party\wtl\using_wtl.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
|
@ -3,7 +3,7 @@
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="chrome_exe"
|
||||
InheritedPropertySheets="$(SolutionDir)..\third_party\breakpad\using_breakpad.vsprops"
|
||||
InheritedPropertySheets="$(SolutionDir)..\breakpad\using_breakpad.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
|
@ -209,8 +209,8 @@ static_library("test_support") {
|
||||
"//chrome/app/chrome_crash_reporter_client_mac.mm",
|
||||
]
|
||||
public_deps += [
|
||||
"//breakpad",
|
||||
"//components/crash/content/app",
|
||||
"//third_party/breakpad",
|
||||
"//third_party/ocmock",
|
||||
]
|
||||
}
|
||||
@ -5096,12 +5096,12 @@ if (!is_android) {
|
||||
":test_support",
|
||||
"//base/test:run_all_unittests",
|
||||
"//base/test:test_support",
|
||||
"//breakpad:client",
|
||||
"//chrome/browser",
|
||||
"//chrome/child",
|
||||
"//components/crash/core/common",
|
||||
"//components/flags_ui:switches",
|
||||
"//gpu/config:crash_keys",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
include_rules = [
|
||||
"+sandbox",
|
||||
"+breakpad/src/client",
|
||||
"+chrome/app/chrome_crash_reporter_client_win.h",
|
||||
"+chrome/common/chrome_switches.h",
|
||||
"+chrome/common/chrome_version.h",
|
||||
"+chrome/install_static",
|
||||
"+third_party/crashpad/crashpad/client/crashpad_client.h",
|
||||
"+components/crash/content/app/crashpad.h",
|
||||
"+components/crash/core/common/crash_keys.h",
|
||||
"+sandbox",
|
||||
"+third_party/breakpad/breakpad/src/client",
|
||||
"+third_party/crashpad/crashpad/client/crashpad_client.h",
|
||||
]
|
||||
|
@ -50,9 +50,9 @@ source_set("cast_crash_client") {
|
||||
|
||||
if (is_android) {
|
||||
deps += [
|
||||
"//breakpad:client",
|
||||
"//chromecast/base:cast_version",
|
||||
"//chromecast/browser:jni_headers",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
include_rules = [
|
||||
"+breakpad",
|
||||
"+chromecast/android",
|
||||
"+chromecast/browser/android",
|
||||
"+jni",
|
||||
"+third_party/breakpad",
|
||||
]
|
||||
|
@ -13,14 +13,14 @@
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "breakpad/src/client/linux/handler/minidump_descriptor.h"
|
||||
#include "chromecast/app/android/cast_crash_reporter_client_android.h"
|
||||
#include "chromecast/base/version.h"
|
||||
#include "components/crash/content/app/breakpad_linux.h"
|
||||
#include "components/crash/content/app/crash_reporter_client.h"
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "jni/CastCrashHandler_jni.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h"
|
||||
|
||||
namespace {
|
||||
|
||||
|
@ -32,13 +32,13 @@ source_set("crash") {
|
||||
|
||||
deps = [
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//chromecast/base",
|
||||
"//chromecast/base:cast_version",
|
||||
"//components/crash/core/common",
|
||||
"//components/metrics",
|
||||
"//components/prefs",
|
||||
"//gpu/config:crash_keys",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
|
||||
if (chromecast_branding == "public") {
|
||||
@ -97,13 +97,13 @@ if (is_linux) {
|
||||
"//base",
|
||||
"//base/test:run_all_unittests",
|
||||
"//base/test:test_support",
|
||||
"//breakpad:client",
|
||||
"//chromecast/base:cast_sys_info",
|
||||
"//chromecast/base:test_support",
|
||||
"//components/metrics",
|
||||
"//components/prefs:test_support",
|
||||
"//testing/gmock",
|
||||
"//testing/gtest",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
include_rules = [
|
||||
"+breakpad",
|
||||
"+components/crash/core/common",
|
||||
"+gpu/config/gpu_crash_keys.h",
|
||||
"+third_party/breakpad",
|
||||
]
|
||||
|
@ -10,13 +10,12 @@
|
||||
#include "base/memory/ptr_util.h"
|
||||
// TODO(slan): Find a replacement for LibcurlWrapper in Chromium to remove the
|
||||
// breakpad dependency.
|
||||
#include "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
|
||||
#include "breakpad/src/common/linux/libcurl_wrapper.h"
|
||||
|
||||
namespace chromecast {
|
||||
namespace {
|
||||
|
||||
// Keep these in sync with
|
||||
// //third_party/breakpad/breakpad/src/client/mac/sender/uploader.mm
|
||||
// Keep these in sync with "//breakpad/src/client/mac/sender/uploader.mm"
|
||||
const char kProdKey[] = "prod";
|
||||
const char kVerKey[] = "ver";
|
||||
const char kGuidKey[] = "guid";
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/memory/ptr_util.h"
|
||||
#include "breakpad/src/common/linux/libcurl_wrapper.h"
|
||||
#include "chromecast/base/scoped_temp_file.h"
|
||||
#include "chromecast/crash/cast_crashdump_uploader.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
|
||||
|
||||
namespace chromecast {
|
||||
|
||||
@ -186,4 +186,4 @@ TEST(CastCrashdumpUploaderTest, UploadSucceedsWithValidAttachment) {
|
||||
ASSERT_TRUE(uploader.Upload(nullptr));
|
||||
}
|
||||
|
||||
} // namespace chromecast
|
||||
} // namespace chromeceast
|
||||
|
@ -1,3 +1,3 @@
|
||||
include_rules = [
|
||||
"+third_party/breakpad",
|
||||
"+breakpad",
|
||||
]
|
||||
|
@ -15,14 +15,14 @@ source_set("lib") {
|
||||
"crash_reporter_client.h",
|
||||
]
|
||||
|
||||
include_dirs = [ "../../../../third_party/breakpad/breakpad/src" ]
|
||||
include_dirs = [ "../../../../breakpad/src" ]
|
||||
|
||||
deps = [
|
||||
"//base",
|
||||
]
|
||||
|
||||
if (is_win) {
|
||||
deps += [ "//third_party/breakpad:breakpad_handler" ]
|
||||
deps += [ "//breakpad:breakpad_handler" ]
|
||||
}
|
||||
}
|
||||
|
||||
@ -213,11 +213,11 @@ source_set("app_non_mac_win") {
|
||||
|
||||
if (is_win) {
|
||||
deps += [
|
||||
"//breakpad:breakpad_handler",
|
||||
"//sandbox",
|
||||
"//third_party/breakpad:breakpad_handler",
|
||||
]
|
||||
} else if (is_posix && !is_ios) {
|
||||
deps += [ "//third_party/breakpad:client" ]
|
||||
deps += [ "//breakpad:client" ]
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,18 +249,18 @@ static_library("app_breakpad_mac_win_to_be_deleted") {
|
||||
deps += [
|
||||
"//base",
|
||||
"//base:base_static",
|
||||
"//breakpad:client",
|
||||
"//components/crash/core/common",
|
||||
"//content/public/common:result_codes",
|
||||
"//sandbox",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
|
||||
if (is_mac) {
|
||||
deps += [ "//third_party/breakpad" ]
|
||||
deps += [ "//breakpad" ]
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
deps += [ "//third_party/breakpad:breakpad_handler" ]
|
||||
deps += [ "//breakpad:breakpad_handler" ]
|
||||
libs = [ "userenv.lib" ]
|
||||
}
|
||||
}
|
||||
@ -299,7 +299,7 @@ source_set("unit_tests") {
|
||||
if (is_win) {
|
||||
deps += [
|
||||
":run_as_crashpad_handler",
|
||||
"//third_party/breakpad:client",
|
||||
"//breakpad:client",
|
||||
"//third_party/crashpad/crashpad/client:client",
|
||||
"//third_party/crashpad/crashpad/snapshot:snapshot",
|
||||
"//third_party/crashpad/crashpad/util",
|
||||
|
@ -40,16 +40,16 @@
|
||||
#include "base/strings/string_split.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/threading/thread_checker.h"
|
||||
#include "breakpad/src/client/linux/crash_generation/crash_generation_client.h"
|
||||
#include "breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "breakpad/src/client/linux/minidump_writer/directory_reader.h"
|
||||
#include "breakpad/src/common/linux/linux_libc_support.h"
|
||||
#include "breakpad/src/common/memory.h"
|
||||
#include "build/build_config.h"
|
||||
#include "components/crash/content/app/breakpad_linux_impl.h"
|
||||
#include "components/crash/content/app/crash_reporter_client.h"
|
||||
#include "components/crash/core/common/crash_keys.h"
|
||||
#include "content/public/common/content_descriptors.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/crash_generation/crash_generation_client.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/minidump_writer/directory_reader.h"
|
||||
#include "third_party/breakpad/breakpad/src/common/linux/linux_libc_support.h"
|
||||
#include "third_party/breakpad/breakpad/src/common/memory.h"
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
#include <android/log.h>
|
||||
@ -192,8 +192,8 @@ void SetProcessStartTime() {
|
||||
}
|
||||
|
||||
// uint64_t version of my_int_len() from
|
||||
// third_party/breakpad/breakpad/src/common/linux/linux_libc_support.h. Return
|
||||
// the length of the given, non-negative integer when expressed in base 10.
|
||||
// breakpad/src/common/linux/linux_libc_support.h. Return the length of the
|
||||
// given, non-negative integer when expressed in base 10.
|
||||
unsigned my_uint64_len(uint64_t i) {
|
||||
if (!i)
|
||||
return 1;
|
||||
@ -208,8 +208,8 @@ unsigned my_uint64_len(uint64_t i) {
|
||||
}
|
||||
|
||||
// uint64_t version of my_uitos() from
|
||||
// third_party/breakpad/breakpad/src/common/linux/linux_libc_support.h. Convert
|
||||
// a non-negative integer to a string (not null-terminated).
|
||||
// breakpad/src/common/linux/linux_libc_support.h. Convert a non-negative
|
||||
// integer to a string (not null-terminated).
|
||||
void my_uint64tos(char* output, uint64_t i, unsigned i_len) {
|
||||
for (unsigned index = i_len; index; --index, i /= 10)
|
||||
output[index - 1] = '0' + (i % 10);
|
||||
|
@ -12,8 +12,8 @@
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "breakpad/src/common/simple_string_dictionary.h"
|
||||
#include "components/crash/content/app/breakpad_linux.h"
|
||||
#include "third_party/breakpad/breakpad/src/common/simple_string_dictionary.h"
|
||||
|
||||
namespace breakpad {
|
||||
|
||||
|
@ -26,10 +26,10 @@
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/threading/platform_thread.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#import "breakpad/src/client/mac/Framework/Breakpad.h"
|
||||
#include "breakpad/src/common/simple_string_dictionary.h"
|
||||
#include "components/crash/content/app/crash_reporter_client.h"
|
||||
#include "components/crash/core/common/crash_keys.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/mac/Framework/Breakpad.h"
|
||||
#include "third_party/breakpad/breakpad/src/common/simple_string_dictionary.h"
|
||||
|
||||
using crash_reporter::GetCrashReporterClient;
|
||||
|
||||
|
@ -32,6 +32,8 @@
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/win/pe_image.h"
|
||||
#include "base/win/win_util.h"
|
||||
#include "breakpad/src/client/windows/common/ipc_protocol.h"
|
||||
#include "breakpad/src/client/windows/handler/exception_handler.h"
|
||||
#include "components/crash/content/app/crash_keys_win.h"
|
||||
#include "components/crash/content/app/crash_reporter_client.h"
|
||||
#include "components/crash/content/app/hard_error_handler_win.h"
|
||||
@ -39,8 +41,6 @@
|
||||
#include "content/public/common/result_codes.h"
|
||||
#include "sandbox/win/src/nt_internals.h"
|
||||
#include "sandbox/win/src/sidestep/preamble_patcher.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/common/ipc_protocol.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/handler/exception_handler.h"
|
||||
|
||||
#pragma intrinsic(_AddressOfReturnAddress)
|
||||
#pragma intrinsic(_ReturnAddress)
|
||||
|
@ -11,8 +11,8 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "breakpad/src/client/windows/common/ipc_protocol.h"
|
||||
#include "components/crash/content/app/crash_reporter_client.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/common/ipc_protocol.h"
|
||||
|
||||
namespace breakpad {
|
||||
|
||||
|
@ -9,10 +9,10 @@
|
||||
#include "base/command_line.h"
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "breakpad/src/client/windows/common/ipc_protocol.h"
|
||||
#include "components/crash/content/app/crash_reporter_client.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/common/ipc_protocol.h"
|
||||
|
||||
namespace breakpad {
|
||||
|
||||
|
@ -20,8 +20,8 @@ class FilePath;
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
// We don't want to directly include
|
||||
// third_party/breakpad/breakpad/src/client/mac/Framework/Breakpad.h here, so we
|
||||
// repeat the definition of BreakpadRef.
|
||||
// breakpad/src/client/mac/Framework/Breakpad.h here, so we repeat the
|
||||
// definition of BreakpadRef.
|
||||
//
|
||||
// On Mac, when compiling without breakpad support, a stub implementation is
|
||||
// compiled in. Not having any includes of the breakpad library allows for
|
||||
|
@ -18,10 +18,10 @@ source_set("browser") {
|
||||
|
||||
deps = [
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//components/crash/content/app",
|
||||
"//content/public/browser",
|
||||
"//content/public/common",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
|
||||
if (is_linux || is_android) {
|
||||
@ -33,16 +33,16 @@ source_set("browser") {
|
||||
"crash_handler_host_linux.h",
|
||||
]
|
||||
deps += [
|
||||
"//breakpad:client",
|
||||
"//components/crash/content/app:app_non_mac_win",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
}
|
||||
|
||||
# This is not in the GYP build but this target includes breakpad client
|
||||
# headers, so add the dependency here.
|
||||
if (is_posix && !is_ios) {
|
||||
configs += [ "//third_party/breakpad:client_config" ]
|
||||
public_configs = [ "//third_party/breakpad:client_config" ]
|
||||
configs += [ "//breakpad:client_config" ]
|
||||
public_configs = [ "//breakpad:client_config" ]
|
||||
}
|
||||
|
||||
if (is_android) {
|
||||
|
@ -33,12 +33,12 @@
|
||||
#include "base/threading/thread.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "base/threading/thread_task_runner_handle.h"
|
||||
#include "breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "breakpad/src/client/linux/minidump_writer/linux_dumper.h"
|
||||
#include "breakpad/src/client/linux/minidump_writer/minidump_writer.h"
|
||||
#include "build/build_config.h"
|
||||
#include "components/crash/content/app/breakpad_linux_impl.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h"
|
||||
|
||||
#if defined(OS_ANDROID) && !defined(__LP64__)
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
@ -12,7 +12,7 @@ static_library("crash_service") {
|
||||
|
||||
deps = [
|
||||
"//base",
|
||||
"//third_party/breakpad:breakpad_handler",
|
||||
"//third_party/breakpad:breakpad_sender",
|
||||
"//breakpad:breakpad_handler",
|
||||
"//breakpad:breakpad_sender",
|
||||
]
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/macros.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/crash_generation/client_info.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/crash_generation/crash_generation_server.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/sender/crash_report_sender.h"
|
||||
#include "breakpad/src/client/windows/crash_generation/client_info.h"
|
||||
#include "breakpad/src/client/windows/crash_generation/crash_generation_server.h"
|
||||
#include "breakpad/src/client/windows/sender/crash_report_sender.h"
|
||||
|
||||
namespace breakpad {
|
||||
|
||||
|
@ -106,6 +106,7 @@ if (current_cpu == "x86") {
|
||||
":nacl64_content",
|
||||
":nacl64_crash_reporter_client",
|
||||
"//base",
|
||||
"//breakpad:breakpad_handler",
|
||||
"//build/win:default_exe_manifest",
|
||||
"//chrome:nacl64_exe_version",
|
||||
"//chrome/install_static:install_static_util",
|
||||
@ -115,7 +116,6 @@ if (current_cpu == "x86") {
|
||||
"//content/public/common:static_switches",
|
||||
"//ppapi/proxy:ipc",
|
||||
"//sandbox",
|
||||
"//third_party/breakpad:breakpad_handler",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
class CrashUploadList {
|
||||
public:
|
||||
// Should match kReporterLogFilename in
|
||||
// third_party/breakpad/breakpad/src/client/apple/Framework/BreakpadDefines.h.
|
||||
// breakpad/src/client/apple/Framework/BreakpadDefines.h.
|
||||
static const char kReporterLogFilename[];
|
||||
|
||||
private:
|
||||
|
@ -827,17 +827,17 @@ group("content_shell_crash_test") {
|
||||
}
|
||||
if (is_posix && !is_android) {
|
||||
data_deps += [
|
||||
"//third_party/breakpad:dump_syms($host_toolchain)",
|
||||
"//third_party/breakpad:minidump_stackwalk($host_toolchain)",
|
||||
"//breakpad:dump_syms($host_toolchain)",
|
||||
"//breakpad:minidump_stackwalk($host_toolchain)",
|
||||
]
|
||||
}
|
||||
if (is_android) {
|
||||
data_deps += [
|
||||
"//third_party/breakpad:dump_syms",
|
||||
"//third_party/breakpad:microdump_stackwalk",
|
||||
"//third_party/breakpad:minidump_dump",
|
||||
"//third_party/breakpad:minidump_stackwalk",
|
||||
"//third_party/breakpad:symupload",
|
||||
"//breakpad:dump_syms",
|
||||
"//breakpad:microdump_stackwalk",
|
||||
"//breakpad:minidump_dump",
|
||||
"//breakpad:minidump_stackwalk",
|
||||
"//breakpad:symupload",
|
||||
"//tools/android/forwarder2",
|
||||
]
|
||||
}
|
||||
|
@ -11,8 +11,8 @@ Breakpad is an open source library which we use for crash reporting across all
|
||||
three platforms (Linux, Mac and Windows). For Linux, a substantial amount of
|
||||
work was required to support cross-process dumping. At the time of writing this
|
||||
code is currently forked from the upstream breakpad repo. While this situation
|
||||
remains, the forked code lives in `third_party/breakpad/linux`. The upstream
|
||||
repo is mirrored in `third_party/breakpad/breakpad`.
|
||||
remains, the forked code lives in `breakpad/linux`. The upstream repo is
|
||||
mirrored in `breakpad/src`.
|
||||
|
||||
The code currently supports i386 only. Getting x86-64 to work should only be a
|
||||
minor amount of work.
|
||||
@ -22,13 +22,13 @@ minor amount of work.
|
||||
Breakpad deals in a file format called 'minidumps'. This is a Microsoft format
|
||||
and thus is defined by in-memory structures which are dumped, raw, to disk. The
|
||||
main header file for this file format is
|
||||
`third_party/breakpad/breakpad/src/google_breakpad/common/minidump_format.h`.
|
||||
`breakpad/src/google_breakpad/common/minidump_format.h`.
|
||||
|
||||
At the top level, the minidump file format is a list of key-value pairs. Many of
|
||||
the keys are defined by the minidump format and contain cross-platform
|
||||
representations of stacks, threads etc. For Linux we also define a number of
|
||||
custom keys containing `/proc/cpuinfo`, `lsb-release` etc. These are defined in
|
||||
`third_party/breakpad/breakpad/linux/minidump_format_linux.h`.
|
||||
`breakpad/linux/minidump_format_linux.h`.
|
||||
|
||||
### Catching exceptions
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
include_rules = [
|
||||
"+breakpad/src/client/ios",
|
||||
"+components/bookmarks/browser",
|
||||
"+components/bookmarks/test",
|
||||
"+components/browser_sync",
|
||||
@ -26,7 +27,6 @@ include_rules = [
|
||||
"+ios/net",
|
||||
"+ios/public/provider/chrome",
|
||||
"+mojo/edk/embedder/embedder.h",
|
||||
"+third_party/breakpad/breakpad/src/client/ios",
|
||||
|
||||
# Strings and resources.
|
||||
"+components/grit",
|
||||
|
@ -34,6 +34,7 @@ source_set("unit_tests") {
|
||||
":test_support",
|
||||
"//base",
|
||||
"//base/test:test_support",
|
||||
"//breakpad:client",
|
||||
"//components/handoff",
|
||||
"//components/metrics",
|
||||
"//ios/chrome/app",
|
||||
@ -64,7 +65,6 @@ source_set("unit_tests") {
|
||||
"//ios/web/public/test",
|
||||
"//net:test_support",
|
||||
"//testing/gtest",
|
||||
"//third_party/breakpad:client",
|
||||
"//third_party/ocmock",
|
||||
"//ui/base",
|
||||
"//url",
|
||||
|
@ -8,6 +8,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#include "base/mac/scoped_block.h"
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#include "components/metrics/metrics_service.h"
|
||||
#import "ios/chrome/app/application_delegate/startup_information.h"
|
||||
#include "ios/chrome/browser/application_context.h"
|
||||
@ -19,7 +20,6 @@
|
||||
#import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h"
|
||||
#include "net/base/network_change_notifier.h"
|
||||
#include "testing/platform_test.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
#import "third_party/ocmock/OCMock/OCMock.h"
|
||||
#include "third_party/ocmock/gtest_support.h"
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
include_rules = [
|
||||
"+breakpad/src/client/ios",
|
||||
"+breakpad/src/common",
|
||||
"+components/about_handler",
|
||||
"+components/autofill/core/browser",
|
||||
"+components/autofill/core/common",
|
||||
@ -103,8 +105,6 @@ include_rules = [
|
||||
"+net",
|
||||
"+rlz/features",
|
||||
"+services/metrics",
|
||||
"+third_party/breakpad/breakpad/src/client/ios",
|
||||
"+third_party/breakpad/breakpad/src/common",
|
||||
"+third_party/brotli",
|
||||
"+third_party/google_toolbox_for_mac",
|
||||
"+third_party/libaddressinput",
|
||||
|
@ -22,11 +22,11 @@ source_set("crash_report") {
|
||||
|
||||
deps = [
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//components/crash/core/common",
|
||||
"//components/upload_list",
|
||||
"//ios/chrome/browser",
|
||||
"//ios/web",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
}
|
||||
|
||||
@ -70,6 +70,7 @@ source_set("unit_tests") {
|
||||
":crash_report",
|
||||
":crash_report_internal",
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//ios/chrome/browser/browser_state",
|
||||
"//ios/chrome/browser/browser_state:test_support",
|
||||
"//ios/chrome/browser/sessions:serialisation",
|
||||
@ -78,7 +79,6 @@ source_set("unit_tests") {
|
||||
"//ios/web/public/test",
|
||||
"//testing/gmock",
|
||||
"//testing/gtest",
|
||||
"//third_party/breakpad:client",
|
||||
"//third_party/ocmock",
|
||||
]
|
||||
}
|
||||
|
@ -22,9 +22,9 @@
|
||||
#import "ios/chrome/browser/crash_report/crash_report_user_application_state.h"
|
||||
|
||||
// TODO(stuartmorgan): Move this up where it belongs once
|
||||
// https://crbug.com/google-breakpad/487 is fixed. For now, put it at the end to
|
||||
// avoid compiler errors.
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
// http://code.google.com/p/google-breakpad/issues/detail?id=487
|
||||
// is fixed. For now, put it at the end to avoid compiler errors.
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
|
@ -2,12 +2,12 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#import "ios/chrome/browser/crash_report/breakpad_helper.h"
|
||||
#import "ios/chrome/test/base/scoped_block_swizzler.h"
|
||||
#import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "testing/platform_test.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
#import "third_party/ocmock/OCMock/OCMock.h"
|
||||
#include "third_party/ocmock/gtest_support.h"
|
||||
|
||||
|
@ -13,8 +13,8 @@
|
||||
#include "base/metrics/user_metrics.h"
|
||||
#include "base/metrics/user_metrics_action.h"
|
||||
#include "base/time/time.h"
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#include "ios/chrome/browser/experimental_flags.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
|
@ -55,11 +55,11 @@ source_set("unit_tests") {
|
||||
deps = [
|
||||
":safe_mode",
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//ios/chrome/browser/crash_report",
|
||||
"//ios/chrome/test/base",
|
||||
"//ios/chrome/test/ocmock",
|
||||
"//testing/gtest",
|
||||
"//third_party/breakpad:client",
|
||||
"//third_party/ocmock",
|
||||
]
|
||||
libs = [ "UIKit.framework" ]
|
||||
|
@ -3,12 +3,12 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#import "ios/chrome/browser/ui/safe_mode/safe_mode_view_controller.h"
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#import "ios/chrome/browser/crash_report/breakpad_helper.h"
|
||||
#import "ios/chrome/test/base/scoped_block_swizzler.h"
|
||||
#import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "testing/platform_test.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
#import "third_party/ocmock/OCMock/OCMock.h"
|
||||
#include "third_party/ocmock/gtest_support.h"
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
include_rules = [
|
||||
"+breakpad/src/client/ios",
|
||||
"+components/autofill/core/browser",
|
||||
"+components/bookmarks",
|
||||
"+components/browser_sync",
|
||||
@ -20,7 +21,6 @@ include_rules = [
|
||||
"+ios/public/provider/chrome",
|
||||
"+ios/public/test",
|
||||
"+net/url_request",
|
||||
"+third_party/breakpad/breakpad/src/client/ios",
|
||||
"+third_party/google_toolbox_for_mac",
|
||||
"+ui",
|
||||
|
||||
|
@ -36,6 +36,7 @@ source_set("test_support") {
|
||||
deps = [
|
||||
"//base",
|
||||
"//base/test:test_support",
|
||||
"//breakpad:client",
|
||||
"//components/autofill/core/browser",
|
||||
"//components/bookmarks/browser",
|
||||
"//components/browser_sync",
|
||||
@ -86,7 +87,6 @@ source_set("test_support") {
|
||||
"//ios/web/public/test",
|
||||
"//net",
|
||||
"//net:test_support",
|
||||
"//third_party/breakpad:client",
|
||||
"//url",
|
||||
]
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
#import "ios/chrome/test/app/chrome_test_util.h"
|
||||
|
||||
#include "base/mac/foundation_util.h"
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#include "components/metrics/metrics_pref_names.h"
|
||||
#include "components/metrics/metrics_service.h"
|
||||
#import "ios/chrome/app/application_delegate/metrics_mediator.h"
|
||||
@ -27,7 +28,6 @@
|
||||
#import "ios/chrome/browser/ui/ntp/new_tab_page_controller.h"
|
||||
#import "ios/chrome/browser/ui/tab_switcher/tab_switcher.h"
|
||||
#import "ios/web/public/test/native_controller_test_util.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
|
@ -11,8 +11,8 @@ source_set("ocmock") {
|
||||
]
|
||||
deps = [
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//testing/gtest",
|
||||
"//third_party/breakpad:client",
|
||||
"//third_party/ocmock",
|
||||
]
|
||||
}
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h"
|
||||
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
#import "third_party/ocmock/OCMock/OCMock.h"
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
|
@ -1,9 +1,9 @@
|
||||
include_rules = [
|
||||
"+breakpad/src/client/ios",
|
||||
"+components/content_settings",
|
||||
"+components/crash/core/common",
|
||||
"+ios/chrome/browser",
|
||||
"+ios/net",
|
||||
"+ios/public/provider/chrome",
|
||||
"+ios/web/public",
|
||||
"+third_party/breakpad/breakpad/src/client/ios",
|
||||
]
|
||||
|
@ -50,6 +50,7 @@ source_set("steps") {
|
||||
deps = [
|
||||
":step_runner",
|
||||
"//base",
|
||||
"//breakpad:client",
|
||||
"//components/content_settings/core/browser",
|
||||
"//ios/chrome/app:app_internal",
|
||||
"//ios/chrome/app/startup",
|
||||
@ -68,7 +69,6 @@ source_set("steps") {
|
||||
"//ios/clean/chrome/browser/ui/root",
|
||||
"//ios/net",
|
||||
"//ios/web",
|
||||
"//third_party/breakpad:client",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -5,10 +5,10 @@
|
||||
#import "ios/clean/chrome/app/steps/breakpad_initializer.h"
|
||||
|
||||
#include "base/logging.h"
|
||||
#import "breakpad/src/client/ios/BreakpadController.h"
|
||||
#include "ios/chrome/browser/application_context.h"
|
||||
#import "ios/clean/chrome/app/steps/step_context.h"
|
||||
#import "ios/clean/chrome/app/steps/step_features.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h"
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
|
@ -56,9 +56,9 @@ if (enable_nacl) {
|
||||
# http://crbug.com/245456
|
||||
if (!is_win && target_cpu == "x64") {
|
||||
deps += [
|
||||
"//third_party/breakpad:dump_syms($host_toolchain)",
|
||||
"//third_party/breakpad:minidump_dump($host_toolchain)",
|
||||
"//third_party/breakpad:minidump_stackwalk($host_toolchain)",
|
||||
"//breakpad:dump_syms($host_toolchain)",
|
||||
"//breakpad:minidump_dump($host_toolchain)",
|
||||
"//breakpad:minidump_stackwalk($host_toolchain)",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -118,9 +118,9 @@ source_set("breakpad") {
|
||||
]
|
||||
|
||||
if (is_mac) {
|
||||
deps += [ "//third_party/breakpad" ]
|
||||
deps += [ "//breakpad" ]
|
||||
} else if (is_win) {
|
||||
deps += [ "//third_party/breakpad:breakpad_handler" ]
|
||||
deps += [ "//breakpad:breakpad_handler" ]
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ source_set("unit_tests") {
|
||||
]
|
||||
|
||||
if (is_win || is_mac || is_chromeos) {
|
||||
deps += [ "//third_party/breakpad:client" ]
|
||||
deps += [ "//breakpad:client" ]
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
|
@ -1,9 +1,9 @@
|
||||
include_rules = [
|
||||
"+breakpad",
|
||||
"+google/protobuf",
|
||||
"+google_apis",
|
||||
"+mojo/edk/embedder",
|
||||
"+net",
|
||||
"+third_party/breakpad",
|
||||
"+third_party/zlib",
|
||||
"+ui/base",
|
||||
]
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include "base/logging.h"
|
||||
#import "base/mac/scoped_nsautorelease_pool.h"
|
||||
#import "third_party/breakpad/breakpad/src/client/mac/Framework/Breakpad.h"
|
||||
#import "breakpad/src/client/mac/Framework/Breakpad.h"
|
||||
|
||||
namespace remoting {
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/win/current_module.h"
|
||||
#include "base/win/wrapped_window_proc.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/handler/exception_handler.h"
|
||||
#include "breakpad/src/client/windows/handler/exception_handler.h"
|
||||
|
||||
namespace remoting {
|
||||
void InitializeCrashReportingForTest(const wchar_t* pipe_name);
|
||||
|
@ -12,10 +12,10 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "breakpad/src/client/windows/crash_generation/client_info.h"
|
||||
#include "breakpad/src/client/windows/crash_generation/crash_generation_server.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/crash_generation/client_info.h"
|
||||
#include "third_party/breakpad/breakpad/src/client/windows/crash_generation/crash_generation_server.h"
|
||||
|
||||
namespace {
|
||||
|
||||
|
@ -28,7 +28,8 @@ fi
|
||||
|
||||
for ARCH in ${ARCHS}; do
|
||||
# Use -c to avoid dumping CFI, because the Breakpad stackwalk is incompatible
|
||||
# with CFI produced by clang. https://crbug.com/google-breakpad/443
|
||||
# with CFI produced by clang.
|
||||
# http://code.google.com/p/google-breakpad/issues/detail?id=443
|
||||
"${DUMP_SYMS_TOOL}" -a "${ARCH}" -c "${DWARF_PATH}" > \
|
||||
"${SOURCE_BUNDLE}-${VERSION}-${ARCH}.breakpad"
|
||||
done
|
||||
|
@ -205,7 +205,7 @@
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"breakpad_unittests": {
|
||||
"label": "//third_party/breakpad:breakpad_unittests",
|
||||
"label": "//breakpad:breakpad_unittests",
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"browser_tests": {
|
||||
@ -458,7 +458,7 @@
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"dump_syms" : {
|
||||
"label": "//third_party/breakpad:dump_syms",
|
||||
"label": "//breakpad:dump_syms",
|
||||
"type": "additional_compile_target",
|
||||
},
|
||||
"events_unittests": {
|
||||
@ -724,7 +724,7 @@
|
||||
],
|
||||
},
|
||||
"microdump_stackwalk" : {
|
||||
"label": "//third_party/breakpad:microdump_stackwalk",
|
||||
"label": "//breakpad:microdump_stackwalk",
|
||||
"type": "additional_compile_target",
|
||||
},
|
||||
"midi_unittests": {
|
||||
|
1
third_party/.gitignore
vendored
1
third_party/.gitignore
vendored
@ -29,7 +29,6 @@
|
||||
/bison
|
||||
/boringssl/src
|
||||
/bouncycastle/lib/*.jar
|
||||
/breakpad/breakpad
|
||||
/byte_buddy/lib/*.jar
|
||||
/cacheinvalidation/cacheinvalidation_unittests_run.xml
|
||||
/cardboard-java/src
|
||||
|
988
third_party/breakpad/BUILD.gn
vendored
988
third_party/breakpad/BUILD.gn
vendored
@ -1,988 +0,0 @@
|
||||
# Copyright 2014 The Chromium 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("//build/symlink.gni")
|
||||
import("//testing/libfuzzer/fuzzer_test.gni")
|
||||
import("//testing/test.gni")
|
||||
|
||||
if (is_win) {
|
||||
import("//build/config/win/visual_studio_version.gni")
|
||||
}
|
||||
|
||||
config("tools_config") {
|
||||
include_dirs = [
|
||||
"breakpad/src",
|
||||
"breakpad/src/third_party",
|
||||
]
|
||||
if (is_android) {
|
||||
defines = [ "__ANDROID__" ]
|
||||
}
|
||||
if (is_clang) {
|
||||
cflags = [ "-Wno-tautological-constant-out-of-range-compare" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("internal_config") {
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
defines = []
|
||||
if (is_debug) {
|
||||
# This is needed for GTMLogger to work correctly.
|
||||
defines += [ "DEBUG" ]
|
||||
}
|
||||
if (is_android) {
|
||||
defines += [ "__ANDROID__" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("client_config") {
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
if (is_android) {
|
||||
include_dirs += [ "breakpad/src/common/android/include" ]
|
||||
}
|
||||
if (is_chromeos) {
|
||||
defines = [ "__CHROMEOS__" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("handler_config") {
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
}
|
||||
|
||||
config("sender_config") {
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
}
|
||||
|
||||
config("breakpad_unittest_config") {
|
||||
# One of the breakpad unit tests test that we can detect the proper build-id.
|
||||
# We must override the build-id for this one target.
|
||||
ldflags = [ "-Wl,--build-id=0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f" ]
|
||||
}
|
||||
|
||||
# {micro,mini}dump_stackwalk and minidump_dump are tool-type executables
|
||||
# that do not build on Windows.
|
||||
if (!is_win) {
|
||||
if (current_toolchain == host_toolchain) {
|
||||
# Contains the code shared by both {micro,mini}dump_stackwalk.
|
||||
static_library("stackwalk_common") {
|
||||
# Always want these files included regardless of platform.
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/processor/basic_code_module.h",
|
||||
"breakpad/src/processor/basic_code_modules.cc",
|
||||
"breakpad/src/processor/basic_code_modules.h",
|
||||
"breakpad/src/processor/basic_source_line_resolver.cc",
|
||||
"breakpad/src/processor/call_stack.cc",
|
||||
"breakpad/src/processor/cfi_frame_info.cc",
|
||||
"breakpad/src/processor/cfi_frame_info.h",
|
||||
"breakpad/src/processor/disassembler_x86.cc",
|
||||
"breakpad/src/processor/disassembler_x86.h",
|
||||
"breakpad/src/processor/dump_context.cc",
|
||||
"breakpad/src/processor/dump_object.cc",
|
||||
"breakpad/src/processor/logging.cc",
|
||||
"breakpad/src/processor/logging.h",
|
||||
"breakpad/src/processor/pathname_stripper.cc",
|
||||
"breakpad/src/processor/pathname_stripper.h",
|
||||
"breakpad/src/processor/proc_maps_linux.cc",
|
||||
"breakpad/src/processor/process_state.cc",
|
||||
"breakpad/src/processor/simple_symbol_supplier.cc",
|
||||
"breakpad/src/processor/simple_symbol_supplier.h",
|
||||
"breakpad/src/processor/source_line_resolver_base.cc",
|
||||
"breakpad/src/processor/stack_frame_cpu.cc",
|
||||
"breakpad/src/processor/stack_frame_symbolizer.cc",
|
||||
"breakpad/src/processor/stackwalk_common.cc",
|
||||
"breakpad/src/processor/stackwalker.cc",
|
||||
"breakpad/src/processor/stackwalker_amd64.cc",
|
||||
"breakpad/src/processor/stackwalker_amd64.h",
|
||||
"breakpad/src/processor/stackwalker_arm.cc",
|
||||
"breakpad/src/processor/stackwalker_arm.h",
|
||||
"breakpad/src/processor/stackwalker_arm64.cc",
|
||||
"breakpad/src/processor/stackwalker_arm64.h",
|
||||
"breakpad/src/processor/stackwalker_mips.cc",
|
||||
"breakpad/src/processor/stackwalker_mips.h",
|
||||
"breakpad/src/processor/stackwalker_ppc.cc",
|
||||
"breakpad/src/processor/stackwalker_ppc.h",
|
||||
"breakpad/src/processor/stackwalker_ppc64.cc",
|
||||
"breakpad/src/processor/stackwalker_ppc64.h",
|
||||
"breakpad/src/processor/stackwalker_sparc.cc",
|
||||
"breakpad/src/processor/stackwalker_sparc.h",
|
||||
"breakpad/src/processor/stackwalker_x86.cc",
|
||||
"breakpad/src/processor/stackwalker_x86.h",
|
||||
"breakpad/src/processor/tokenize.cc",
|
||||
"breakpad/src/processor/tokenize.h",
|
||||
|
||||
# libdisasm
|
||||
"breakpad/src/third_party/libdisasm/ia32_implicit.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_implicit.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_insn.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_insn.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_invariant.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_invariant.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_modrm.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_modrm.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_opcode_tables.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_opcode_tables.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_operand.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_operand.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_reg.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_reg.h",
|
||||
"breakpad/src/third_party/libdisasm/ia32_settings.c",
|
||||
"breakpad/src/third_party/libdisasm/ia32_settings.h",
|
||||
"breakpad/src/third_party/libdisasm/libdis.h",
|
||||
"breakpad/src/third_party/libdisasm/qword.h",
|
||||
"breakpad/src/third_party/libdisasm/x86_disasm.c",
|
||||
"breakpad/src/third_party/libdisasm/x86_format.c",
|
||||
"breakpad/src/third_party/libdisasm/x86_imm.c",
|
||||
"breakpad/src/third_party/libdisasm/x86_imm.h",
|
||||
"breakpad/src/third_party/libdisasm/x86_insn.c",
|
||||
"breakpad/src/third_party/libdisasm/x86_misc.c",
|
||||
"breakpad/src/third_party/libdisasm/x86_operand_list.c",
|
||||
"breakpad/src/third_party/libdisasm/x86_operand_list.h",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":tools_config" ]
|
||||
}
|
||||
|
||||
fuzzer_test("minidump_fuzzer") {
|
||||
sources = [
|
||||
"breakpad/src/processor/exploitability.cc",
|
||||
"breakpad/src/processor/minidump.cc",
|
||||
"breakpad/src/processor/minidump_processor.cc",
|
||||
"minidump_fuzzer.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":stackwalk_common",
|
||||
"//base",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
dict = "minidump_fuzzer.dict"
|
||||
|
||||
libfuzzer_options = [
|
||||
"close_fd_mask=3",
|
||||
"max_len=128000",
|
||||
]
|
||||
|
||||
# Always want these files included regardless of platform.
|
||||
set_sources_assignment_filter([])
|
||||
sources += [
|
||||
"breakpad/src/processor/exploitability_linux.cc",
|
||||
"breakpad/src/processor/exploitability_linux.h",
|
||||
"breakpad/src/processor/exploitability_win.cc",
|
||||
"breakpad/src/processor/exploitability_win.h",
|
||||
"breakpad/src/processor/symbolic_constants_win.cc",
|
||||
"breakpad/src/processor/symbolic_constants_win.h",
|
||||
]
|
||||
}
|
||||
|
||||
executable("microdump_stackwalk") {
|
||||
sources = [
|
||||
"breakpad/src/processor/microdump.cc",
|
||||
"breakpad/src/processor/microdump_processor.cc",
|
||||
"breakpad/src/processor/microdump_stackwalk.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":stackwalk_common",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":tools_config" ]
|
||||
}
|
||||
|
||||
executable("minidump_stackwalk") {
|
||||
sources = [
|
||||
"breakpad/src/processor/exploitability.cc",
|
||||
"breakpad/src/processor/minidump.cc",
|
||||
"breakpad/src/processor/minidump_processor.cc",
|
||||
"breakpad/src/processor/minidump_stackwalk.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":stackwalk_common",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":tools_config" ]
|
||||
|
||||
# Always want these files included regardless of platform.
|
||||
set_sources_assignment_filter([])
|
||||
sources += [
|
||||
"breakpad/src/processor/exploitability_linux.cc",
|
||||
"breakpad/src/processor/exploitability_linux.h",
|
||||
"breakpad/src/processor/exploitability_win.cc",
|
||||
"breakpad/src/processor/exploitability_win.h",
|
||||
"breakpad/src/processor/symbolic_constants_win.cc",
|
||||
"breakpad/src/processor/symbolic_constants_win.h",
|
||||
]
|
||||
}
|
||||
|
||||
executable("minidump_dump") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/processor/basic_code_module.h",
|
||||
"breakpad/src/processor/basic_code_modules.cc",
|
||||
"breakpad/src/processor/basic_code_modules.h",
|
||||
"breakpad/src/processor/dump_context.cc",
|
||||
"breakpad/src/processor/dump_object.cc",
|
||||
"breakpad/src/processor/logging.cc",
|
||||
"breakpad/src/processor/logging.h",
|
||||
"breakpad/src/processor/minidump.cc",
|
||||
"breakpad/src/processor/minidump_dump.cc",
|
||||
"breakpad/src/processor/pathname_stripper.cc",
|
||||
"breakpad/src/processor/pathname_stripper.h",
|
||||
"breakpad/src/processor/proc_maps_linux.cc",
|
||||
]
|
||||
|
||||
configs += [ ":tools_config" ]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
} else {
|
||||
# Aliases for convenience.
|
||||
binary_symlink("microdump_stackwalk") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("minidump_stackwalk") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("minidump_dump") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Mac --------------------------------------------------------------------------
|
||||
|
||||
if (is_mac) {
|
||||
if (current_toolchain == host_toolchain) {
|
||||
executable("dump_syms") {
|
||||
sources = [
|
||||
"breakpad/src/common/dwarf/bytereader.cc",
|
||||
"breakpad/src/common/dwarf/dwarf2diehandler.cc",
|
||||
"breakpad/src/common/dwarf/dwarf2reader.cc",
|
||||
"breakpad/src/common/dwarf/elf_reader.cc",
|
||||
"breakpad/src/common/dwarf/elf_reader.h",
|
||||
"breakpad/src/common/dwarf_cfi_to_module.cc",
|
||||
"breakpad/src/common/dwarf_cu_to_module.cc",
|
||||
"breakpad/src/common/dwarf_line_to_module.cc",
|
||||
"breakpad/src/common/language.cc",
|
||||
"breakpad/src/common/mac/arch_utilities.cc",
|
||||
"breakpad/src/common/mac/arch_utilities.h",
|
||||
"breakpad/src/common/mac/dump_syms.cc",
|
||||
"breakpad/src/common/mac/file_id.cc",
|
||||
"breakpad/src/common/mac/macho_id.cc",
|
||||
"breakpad/src/common/mac/macho_reader.cc",
|
||||
"breakpad/src/common/mac/macho_utilities.cc",
|
||||
"breakpad/src/common/mac/macho_walker.cc",
|
||||
"breakpad/src/common/md5.cc",
|
||||
"breakpad/src/common/module.cc",
|
||||
"breakpad/src/common/stabs_reader.cc",
|
||||
"breakpad/src/common/stabs_to_module.cc",
|
||||
"breakpad/src/tools/mac/dump_syms/dump_syms_tool.cc",
|
||||
]
|
||||
|
||||
# For breakpad/src/common/stabs_reader.h.
|
||||
defines = [ "HAVE_MACH_O_NLIST_H" ]
|
||||
include_dirs = [ "breakpad/src/common/mac" ]
|
||||
|
||||
# The DWARF utilities require -funsigned-char.
|
||||
cflags = [ "-funsigned-char" ]
|
||||
|
||||
configs += [ ":internal_config" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
# dwarf2reader.cc uses dynamic_cast.
|
||||
configs -= [ "//build/config/compiler:no_rtti" ]
|
||||
configs += [ "//build/config/compiler:rtti" ]
|
||||
|
||||
libs = [ "Foundation.framework" ]
|
||||
|
||||
if (!is_debug) {
|
||||
# dump_syms crashes when built at -O1, -O2, and -O3. It does
|
||||
# not crash at -Os. To play it safe, dump_syms is always built
|
||||
# at -O0 until this can be sorted out.
|
||||
# https://crbug.com/google-breakpad/329
|
||||
configs -= [ "//build/config/compiler:default_optimization" ]
|
||||
cflags += [ "-O0" ]
|
||||
}
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
executable("symupload") {
|
||||
sources = [
|
||||
"breakpad/src/common/mac/HTTPMultipartUpload.m",
|
||||
"breakpad/src/tools/mac/symupload/symupload.m",
|
||||
]
|
||||
|
||||
include_dirs = [ "breakpad/src/common/mac" ]
|
||||
|
||||
libs = [ "Foundation.framework" ]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
} else {
|
||||
binary_symlink("dump_syms") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("symupload") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_ios) {
|
||||
binary_symlink("dump_syms") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
binary_symlink("symupload") {
|
||||
binary_label = ":$target_name($host_toolchain)"
|
||||
}
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
static_library("utilities") {
|
||||
sources = [
|
||||
"breakpad/src/client/mac/crash_generation/ConfigFile.mm",
|
||||
"breakpad/src/client/mac/handler/breakpad_nlist_64.cc",
|
||||
"breakpad/src/client/mac/handler/dynamic_images.cc",
|
||||
"breakpad/src/client/mac/handler/minidump_generator.cc",
|
||||
"breakpad/src/client/minidump_file_writer.cc",
|
||||
"breakpad/src/common/convert_UTF.c",
|
||||
"breakpad/src/common/mac/MachIPC.mm",
|
||||
"breakpad/src/common/mac/arch_utilities.cc",
|
||||
"breakpad/src/common/mac/bootstrap_compat.cc",
|
||||
"breakpad/src/common/mac/file_id.cc",
|
||||
"breakpad/src/common/mac/launch_reporter.cc",
|
||||
"breakpad/src/common/mac/macho_id.cc",
|
||||
"breakpad/src/common/mac/macho_utilities.cc",
|
||||
"breakpad/src/common/mac/macho_walker.cc",
|
||||
"breakpad/src/common/mac/string_utilities.cc",
|
||||
"breakpad/src/common/md5.cc",
|
||||
"breakpad/src/common/simple_string_dictionary.cc",
|
||||
"breakpad/src/common/string_conversion.cc",
|
||||
]
|
||||
|
||||
configs += [ ":internal_config" ]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
executable("crash_inspector") {
|
||||
sources = [
|
||||
"breakpad/src/client/mac/crash_generation/Inspector.mm",
|
||||
"breakpad/src/client/mac/crash_generation/InspectorMain.mm",
|
||||
]
|
||||
|
||||
# TODO(GYP): 'mac_real_dsym': 1,
|
||||
|
||||
include_dirs = [
|
||||
"breakpad/src/client/apple/Framework",
|
||||
"breakpad/src/common/mac",
|
||||
"breakpad/src",
|
||||
]
|
||||
libs = [
|
||||
"CoreServices.framework",
|
||||
"Foundation.framework",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":utilities",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
# TODO(GYP) this target has some mac_bundle_resources stuff.
|
||||
# executable("crash_report_sender") {
|
||||
# }
|
||||
group("crash_report_sender") {
|
||||
}
|
||||
|
||||
config("breakpad_config") {
|
||||
include_dirs = [ "breakpad/src/client/apple/Framework" ]
|
||||
}
|
||||
|
||||
static_library("breakpad") {
|
||||
sources = [
|
||||
"breakpad/src/client/mac/Framework/Breakpad.mm",
|
||||
"breakpad/src/client/mac/Framework/OnDemandServer.mm",
|
||||
"breakpad/src/client/mac/crash_generation/crash_generation_client.cc",
|
||||
"breakpad/src/client/mac/crash_generation/crash_generation_client.h",
|
||||
"breakpad/src/client/mac/handler/exception_handler.cc",
|
||||
"breakpad/src/client/mac/handler/protected_memory_allocator.cc",
|
||||
]
|
||||
|
||||
configs += [ ":internal_config" ]
|
||||
public_configs = [ ":breakpad_config" ]
|
||||
|
||||
defines = [ "USE_PROTECTED_ALLOCATIONS=1" ]
|
||||
include_dirs = [ "breakpad/src/client/apple/Framework" ]
|
||||
|
||||
deps = [
|
||||
":crash_inspector",
|
||||
":crash_report_sender",
|
||||
":utilities",
|
||||
]
|
||||
}
|
||||
|
||||
group("client") {
|
||||
public_configs = [ ":client_config" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_linux || is_android) {
|
||||
if (current_toolchain == host_toolchain) {
|
||||
executable("symupload") {
|
||||
sources = [
|
||||
"breakpad/src/common/linux/http_upload.cc",
|
||||
"breakpad/src/common/linux/http_upload.h",
|
||||
"breakpad/src/common/linux/symbol_upload.cc",
|
||||
"breakpad/src/common/linux/symbol_upload.h",
|
||||
"breakpad/src/tools/linux/symupload/sym_upload.cc",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"breakpad/src",
|
||||
"breakpad/src/third_party",
|
||||
]
|
||||
|
||||
configs += [ ":tools_config" ]
|
||||
|
||||
libs = [ "dl" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
# dump_syms is a host tool, so only compile it for the host system.
|
||||
executable("dump_syms") {
|
||||
sources = [
|
||||
"breakpad/src/common/dwarf/bytereader.cc",
|
||||
"breakpad/src/common/dwarf/dwarf2diehandler.cc",
|
||||
"breakpad/src/common/dwarf/dwarf2reader.cc",
|
||||
"breakpad/src/common/dwarf/elf_reader.cc",
|
||||
"breakpad/src/common/dwarf/elf_reader.h",
|
||||
"breakpad/src/common/dwarf_cfi_to_module.cc",
|
||||
"breakpad/src/common/dwarf_cfi_to_module.h",
|
||||
"breakpad/src/common/dwarf_cu_to_module.cc",
|
||||
"breakpad/src/common/dwarf_cu_to_module.h",
|
||||
"breakpad/src/common/dwarf_line_to_module.cc",
|
||||
"breakpad/src/common/dwarf_line_to_module.h",
|
||||
"breakpad/src/common/language.cc",
|
||||
"breakpad/src/common/language.h",
|
||||
"breakpad/src/common/linux/crc32.cc",
|
||||
"breakpad/src/common/linux/crc32.h",
|
||||
"breakpad/src/common/linux/dump_symbols.cc",
|
||||
"breakpad/src/common/linux/dump_symbols.h",
|
||||
"breakpad/src/common/linux/elf_symbols_to_module.cc",
|
||||
"breakpad/src/common/linux/elf_symbols_to_module.h",
|
||||
"breakpad/src/common/linux/elfutils.cc",
|
||||
"breakpad/src/common/linux/elfutils.h",
|
||||
"breakpad/src/common/linux/file_id.cc",
|
||||
"breakpad/src/common/linux/file_id.h",
|
||||
"breakpad/src/common/linux/guid_creator.h",
|
||||
"breakpad/src/common/linux/linux_libc_support.cc",
|
||||
"breakpad/src/common/linux/linux_libc_support.h",
|
||||
"breakpad/src/common/linux/memory_mapped_file.cc",
|
||||
"breakpad/src/common/linux/memory_mapped_file.h",
|
||||
"breakpad/src/common/module.cc",
|
||||
"breakpad/src/common/module.h",
|
||||
"breakpad/src/common/stabs_reader.cc",
|
||||
"breakpad/src/common/stabs_reader.h",
|
||||
"breakpad/src/common/stabs_to_module.cc",
|
||||
"breakpad/src/common/stabs_to_module.h",
|
||||
"breakpad/src/tools/linux/dump_syms/dump_syms.cc",
|
||||
]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
|
||||
# dwarf2reader.cc uses dynamic_cast. Because we don't typically
|
||||
# don't support RTTI, we enable it for this single target. Since
|
||||
# dump_syms doesn't share any object files with anything else,
|
||||
# this doesn't end up polluting Chrome itself.
|
||||
configs -= [ "//build/config/compiler:no_rtti" ]
|
||||
configs += [ "//build/config/compiler:rtti" ]
|
||||
|
||||
# Breakpad rev 583 introduced this flag.
|
||||
# Using this define, stabs_reader.h will include a.out.h to
|
||||
# build on Linux.
|
||||
defines = [ "HAVE_A_OUT_H" ]
|
||||
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
|
||||
deps = [
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
} else {
|
||||
# Aliases for convenience.
|
||||
binary_symlink("dump_syms") {
|
||||
binary_label = ":dump_syms($host_toolchain)"
|
||||
}
|
||||
binary_symlink("symupload") {
|
||||
binary_label = ":symupload($host_toolchain)"
|
||||
}
|
||||
}
|
||||
|
||||
static_library("client") {
|
||||
# Want all these sources for both Linux and Android.
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/client/linux/crash_generation/crash_generation_client.cc",
|
||||
"breakpad/src/client/linux/crash_generation/crash_generation_client.h",
|
||||
"breakpad/src/client/linux/dump_writer_common/mapping_info.h",
|
||||
"breakpad/src/client/linux/dump_writer_common/thread_info.cc",
|
||||
"breakpad/src/client/linux/dump_writer_common/thread_info.h",
|
||||
"breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc",
|
||||
"breakpad/src/client/linux/dump_writer_common/ucontext_reader.h",
|
||||
"breakpad/src/client/linux/handler/exception_handler.cc",
|
||||
"breakpad/src/client/linux/handler/exception_handler.h",
|
||||
"breakpad/src/client/linux/handler/minidump_descriptor.cc",
|
||||
"breakpad/src/client/linux/handler/minidump_descriptor.h",
|
||||
"breakpad/src/client/linux/log/log.cc",
|
||||
"breakpad/src/client/linux/log/log.h",
|
||||
"breakpad/src/client/linux/microdump_writer/microdump_writer.cc",
|
||||
"breakpad/src/client/linux/microdump_writer/microdump_writer.h",
|
||||
"breakpad/src/client/linux/minidump_writer/cpu_set.h",
|
||||
"breakpad/src/client/linux/minidump_writer/directory_reader.h",
|
||||
"breakpad/src/client/linux/minidump_writer/line_reader.h",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_core_dumper.h",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_dumper.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_dumper.h",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h",
|
||||
"breakpad/src/client/linux/minidump_writer/minidump_writer.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/minidump_writer.h",
|
||||
"breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h",
|
||||
"breakpad/src/client/minidump_file_writer-inl.h",
|
||||
"breakpad/src/client/minidump_file_writer.cc",
|
||||
"breakpad/src/client/minidump_file_writer.h",
|
||||
"breakpad/src/common/convert_UTF.c",
|
||||
"breakpad/src/common/convert_UTF.h",
|
||||
"breakpad/src/common/linux/elf_core_dump.cc",
|
||||
"breakpad/src/common/linux/elf_core_dump.h",
|
||||
"breakpad/src/common/linux/elfutils.cc",
|
||||
"breakpad/src/common/linux/elfutils.h",
|
||||
"breakpad/src/common/linux/file_id.cc",
|
||||
"breakpad/src/common/linux/file_id.h",
|
||||
"breakpad/src/common/linux/google_crashdump_uploader.cc",
|
||||
"breakpad/src/common/linux/google_crashdump_uploader.h",
|
||||
"breakpad/src/common/linux/guid_creator.cc",
|
||||
"breakpad/src/common/linux/guid_creator.h",
|
||||
"breakpad/src/common/linux/libcurl_wrapper.cc",
|
||||
"breakpad/src/common/linux/libcurl_wrapper.h",
|
||||
"breakpad/src/common/linux/linux_libc_support.cc",
|
||||
"breakpad/src/common/linux/linux_libc_support.h",
|
||||
"breakpad/src/common/linux/memory_mapped_file.cc",
|
||||
"breakpad/src/common/linux/memory_mapped_file.h",
|
||||
"breakpad/src/common/linux/safe_readlink.cc",
|
||||
"breakpad/src/common/linux/safe_readlink.h",
|
||||
"breakpad/src/common/memory.h",
|
||||
"breakpad/src/common/simple_string_dictionary.cc",
|
||||
"breakpad/src/common/simple_string_dictionary.h",
|
||||
"breakpad/src/common/string_conversion.cc",
|
||||
"breakpad/src/common/string_conversion.h",
|
||||
]
|
||||
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
public_configs = [ ":client_config" ]
|
||||
|
||||
if (current_cpu == "arm" && is_chromeos) {
|
||||
# Avoid running out of registers in
|
||||
# linux_syscall_support.h:sys_clone()'s inline assembly.
|
||||
cflags = [ "-marm" ]
|
||||
}
|
||||
|
||||
# Clang's -mstackrealign doesn't work well with
|
||||
# linux_syscall_support.h hand written asm syscalls.
|
||||
# See https://crbug.com/556393
|
||||
configs -= [ "//build/config/compiler:clang_stackrealign" ]
|
||||
|
||||
if (is_android) {
|
||||
sources += [ "breakpad/src/common/android/breakpad_getcontext.S" ]
|
||||
}
|
||||
|
||||
libs = [ "dl" ]
|
||||
|
||||
include_dirs = [
|
||||
".",
|
||||
"breakpad/src",
|
||||
"breakpad/src/client",
|
||||
"breakpad/src/third_party/linux/include",
|
||||
]
|
||||
}
|
||||
|
||||
static_library("processor_support") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/common/scoped_ptr.h",
|
||||
"breakpad/src/processor/basic_code_modules.cc",
|
||||
"breakpad/src/processor/basic_code_modules.h",
|
||||
"breakpad/src/processor/dump_context.cc",
|
||||
"breakpad/src/processor/dump_object.cc",
|
||||
"breakpad/src/processor/logging.cc",
|
||||
"breakpad/src/processor/logging.h",
|
||||
"breakpad/src/processor/minidump.cc",
|
||||
"breakpad/src/processor/pathname_stripper.cc",
|
||||
"breakpad/src/processor/pathname_stripper.h",
|
||||
"breakpad/src/processor/proc_maps_linux.cc",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"breakpad/src",
|
||||
"breakpad/src/client",
|
||||
"breakpad/src/third_party/linux/include",
|
||||
".",
|
||||
]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
|
||||
test("breakpad_unittests") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/client/linux/handler/exception_handler_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/cpu_set_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/directory_reader_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/line_reader_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc",
|
||||
"breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc",
|
||||
"breakpad/src/common/linux/elf_core_dump_unittest.cc",
|
||||
"breakpad/src/common/linux/file_id_unittest.cc",
|
||||
"breakpad/src/common/linux/linux_libc_support_unittest.cc",
|
||||
"breakpad/src/common/linux/synth_elf.cc",
|
||||
"breakpad/src/common/linux/tests/auto_testfile.h",
|
||||
"breakpad/src/common/linux/tests/crash_generator.cc",
|
||||
"breakpad/src/common/linux/tests/crash_generator.h",
|
||||
"breakpad/src/common/memory_range.h",
|
||||
"breakpad/src/common/memory_unittest.cc",
|
||||
"breakpad/src/common/simple_string_dictionary_unittest.cc",
|
||||
"breakpad/src/common/test_assembler.cc",
|
||||
"breakpad/src/common/tests/file_utils.cc",
|
||||
"breakpad/src/common/tests/file_utils.h",
|
||||
"breakpad/src/tools/linux/md2core/minidump_memory_range.h",
|
||||
"breakpad/src/tools/linux/md2core/minidump_memory_range_unittest.cc",
|
||||
"linux/breakpad_googletest_includes.h",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
":linux_dumper_unittest_helper",
|
||||
":processor_support",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
"//testing/gmock",
|
||||
"//testing/gtest",
|
||||
"//testing/gtest:gtest_main",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"linux", # Use our copy of breakpad_googletest_includes.h
|
||||
".",
|
||||
]
|
||||
|
||||
# There are some warnings in this code.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [
|
||||
":client_config",
|
||||
"//build/config/compiler:no_chromium_code",
|
||||
]
|
||||
|
||||
if (is_clang) {
|
||||
# See https://crbug.com/138571#c18
|
||||
cflags = [ "-Wno-unused-value" ]
|
||||
}
|
||||
|
||||
if (is_android) {
|
||||
use_raw_android_executable = true
|
||||
sources +=
|
||||
[ "breakpad/src/common/android/breakpad_getcontext_unittest.cc" ]
|
||||
libs = [ "log" ]
|
||||
extra_dist_files = [ "$root_out_dir/linux_dumper_unittest_helper" ]
|
||||
}
|
||||
|
||||
# Clang's -mstackrealign doesn't work well with
|
||||
# linux_syscall_support.h hand written asm syscalls.
|
||||
# See https://crbug.com/556393
|
||||
configs -= [ "//build/config/compiler:clang_stackrealign" ]
|
||||
|
||||
# Add the breakpad unittest config at the end to override all configs.
|
||||
configs += [ ":breakpad_unittest_config" ]
|
||||
}
|
||||
|
||||
executable("linux_dumper_unittest_helper") {
|
||||
set_sources_assignment_filter([])
|
||||
testonly = true
|
||||
sources = [
|
||||
"breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc",
|
||||
]
|
||||
deps = [
|
||||
":processor_support",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
configs += [ ":client_config" ]
|
||||
|
||||
if (is_component_build) {
|
||||
ldflags = [
|
||||
"-Wl,-rpath,",
|
||||
rebase_path(root_build_dir),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
executable("generate_test_dump") {
|
||||
set_sources_assignment_filter([])
|
||||
testonly = true
|
||||
sources = [
|
||||
"linux/generate-test-dump.cc",
|
||||
]
|
||||
|
||||
# This file has an unused variable warning.
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [
|
||||
":client_config",
|
||||
"//build/config/compiler:no_chromium_code",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
if (is_android) {
|
||||
libs = [ "log" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("minidump-2-core") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/tools/linux/md2core/minidump-2-core.cc",
|
||||
]
|
||||
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
}
|
||||
|
||||
executable("core-2-minidump") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/tools/linux/core2md/core2md.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":client",
|
||||
"//build/config:exe_and_shlib_deps",
|
||||
]
|
||||
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
executable("dump_syms") {
|
||||
# TODO(scottmg) using this with VS2015 may break the crash server.
|
||||
# https://crbug.com/696671
|
||||
include_dirs = [
|
||||
"$visual_studio_path/DIA SDK/include",
|
||||
"breakpad/src",
|
||||
]
|
||||
|
||||
sources = [
|
||||
"breakpad/src/common/windows/dia_util.cc",
|
||||
"breakpad/src/common/windows/dia_util.h",
|
||||
"breakpad/src/common/windows/guid_string.cc",
|
||||
"breakpad/src/common/windows/guid_string.h",
|
||||
"breakpad/src/common/windows/omap.cc",
|
||||
"breakpad/src/common/windows/omap.h",
|
||||
"breakpad/src/common/windows/pdb_source_line_writer.cc",
|
||||
"breakpad/src/common/windows/pdb_source_line_writer.h",
|
||||
"breakpad/src/common/windows/string_utils-inl.h",
|
||||
"breakpad/src/common/windows/string_utils.cc",
|
||||
"breakpad/src/tools/windows/dump_syms/dump_syms.cc",
|
||||
]
|
||||
|
||||
lib_dirs = []
|
||||
if (target_cpu == "x64") {
|
||||
lib_dirs += [ "$visual_studio_path/DIA SDK/lib/amd64" ]
|
||||
} else {
|
||||
lib_dirs += [ "$visual_studio_path/DIA SDK/lib" ]
|
||||
}
|
||||
|
||||
libs = [
|
||||
"diaguids.lib",
|
||||
"imagehlp.lib",
|
||||
]
|
||||
if (is_clang) {
|
||||
# clang complains about microsoft-specific goto extensions. Instead of
|
||||
# rewriting decade-old, goto-ridden code, disable the warning.
|
||||
cflags = [ "-Wno-microsoft-goto" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_ios) {
|
||||
static_library("client") {
|
||||
set_sources_assignment_filter([])
|
||||
sources = [
|
||||
"breakpad/src/client/ios/Breakpad.h",
|
||||
"breakpad/src/client/ios/Breakpad.mm",
|
||||
"breakpad/src/client/ios/BreakpadController.h",
|
||||
"breakpad/src/client/ios/BreakpadController.mm",
|
||||
"breakpad/src/client/ios/handler/ios_exception_minidump_generator.h",
|
||||
"breakpad/src/client/ios/handler/ios_exception_minidump_generator.mm",
|
||||
"breakpad/src/client/mac/crash_generation/ConfigFile.h",
|
||||
"breakpad/src/client/mac/crash_generation/ConfigFile.mm",
|
||||
"breakpad/src/client/mac/handler/breakpad_nlist_64.cc",
|
||||
"breakpad/src/client/mac/handler/breakpad_nlist_64.h",
|
||||
"breakpad/src/client/mac/handler/dynamic_images.cc",
|
||||
"breakpad/src/client/mac/handler/dynamic_images.h",
|
||||
"breakpad/src/client/mac/handler/exception_handler.cc",
|
||||
"breakpad/src/client/mac/handler/exception_handler.h",
|
||||
"breakpad/src/client/mac/handler/minidump_generator.cc",
|
||||
"breakpad/src/client/mac/handler/minidump_generator.h",
|
||||
"breakpad/src/client/mac/handler/protected_memory_allocator.cc",
|
||||
"breakpad/src/client/mac/handler/protected_memory_allocator.h",
|
||||
"breakpad/src/client/mac/sender/uploader.h",
|
||||
"breakpad/src/client/mac/sender/uploader.mm",
|
||||
"breakpad/src/client/minidump_file_writer-inl.h",
|
||||
"breakpad/src/client/minidump_file_writer.cc",
|
||||
"breakpad/src/client/minidump_file_writer.h",
|
||||
"breakpad/src/common/convert_UTF.c",
|
||||
"breakpad/src/common/convert_UTF.h",
|
||||
"breakpad/src/common/mac/HTTPMultipartUpload.m",
|
||||
"breakpad/src/common/mac/file_id.cc",
|
||||
"breakpad/src/common/mac/file_id.h",
|
||||
"breakpad/src/common/mac/macho_id.cc",
|
||||
"breakpad/src/common/mac/macho_id.h",
|
||||
"breakpad/src/common/mac/macho_utilities.cc",
|
||||
"breakpad/src/common/mac/macho_utilities.h",
|
||||
"breakpad/src/common/mac/macho_walker.cc",
|
||||
"breakpad/src/common/mac/macho_walker.h",
|
||||
"breakpad/src/common/mac/string_utilities.cc",
|
||||
"breakpad/src/common/mac/string_utilities.h",
|
||||
"breakpad/src/common/md5.cc",
|
||||
"breakpad/src/common/md5.h",
|
||||
"breakpad/src/common/simple_string_dictionary.cc",
|
||||
"breakpad/src/common/simple_string_dictionary.h",
|
||||
"breakpad/src/common/string_conversion.cc",
|
||||
"breakpad/src/common/string_conversion.h",
|
||||
"breakpad/src/google_breakpad/common/minidump_format.h",
|
||||
]
|
||||
set_sources_assignment_filter(sources_assignment_filter)
|
||||
|
||||
include_dirs = [
|
||||
"breakpad/src",
|
||||
"breakpad/src/client/mac/Framework",
|
||||
"breakpad/src/common/mac",
|
||||
]
|
||||
|
||||
deps = [
|
||||
"//third_party/google_toolbox_for_mac",
|
||||
]
|
||||
|
||||
public_configs = [ ":client_config" ]
|
||||
|
||||
if (is_clang) {
|
||||
# See https://crbug.com/google-breakpad/675.
|
||||
cflags = [ "-Wno-deprecated-declarations" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
group("client") {
|
||||
public_configs = [ ":client_config" ]
|
||||
}
|
||||
|
||||
config("breakpad_handler_warnings") {
|
||||
if (is_clang) {
|
||||
# See https://crbug.com/google-breakpad/658.
|
||||
cflags = [ "-Wno-reorder" ]
|
||||
}
|
||||
}
|
||||
|
||||
static_library("breakpad_handler") {
|
||||
configs += [ ":handler_config" ]
|
||||
if (is_win) {
|
||||
public_configs = [ ":handler_config" ]
|
||||
}
|
||||
|
||||
defines = [ "BREAKPAD_NO_TERMINATE_THREAD" ]
|
||||
|
||||
sources = [
|
||||
"breakpad/src/client/windows/crash_generation/client_info.cc",
|
||||
"breakpad/src/client/windows/crash_generation/client_info.h",
|
||||
"breakpad/src/client/windows/crash_generation/crash_generation_client.cc",
|
||||
"breakpad/src/client/windows/crash_generation/crash_generation_client.h",
|
||||
"breakpad/src/client/windows/crash_generation/crash_generation_server.cc",
|
||||
"breakpad/src/client/windows/crash_generation/crash_generation_server.h",
|
||||
"breakpad/src/client/windows/crash_generation/minidump_generator.cc",
|
||||
"breakpad/src/client/windows/crash_generation/minidump_generator.h",
|
||||
"breakpad/src/client/windows/handler/exception_handler.cc",
|
||||
"breakpad/src/client/windows/handler/exception_handler.h",
|
||||
"breakpad/src/common/windows/guid_string.cc",
|
||||
"breakpad/src/common/windows/guid_string.h",
|
||||
"breakpad/src/common/windows/string_utils-inl.h",
|
||||
"breakpad/src/google_breakpad/common/minidump_format.h",
|
||||
]
|
||||
configs += [ ":breakpad_handler_warnings" ]
|
||||
}
|
||||
|
||||
source_set("breakpad_sender") {
|
||||
sources = [
|
||||
"breakpad/src/client/windows/sender/crash_report_sender.cc",
|
||||
"breakpad/src/client/windows/sender/crash_report_sender.h",
|
||||
"breakpad/src/common/windows/http_upload.cc",
|
||||
"breakpad/src/common/windows/http_upload.h",
|
||||
]
|
||||
configs += [ ":sender_config" ]
|
||||
public_configs = [ ":sender_config" ]
|
||||
}
|
||||
}
|
12
third_party/breakpad/DEPS
vendored
12
third_party/breakpad/DEPS
vendored
@ -1,12 +0,0 @@
|
||||
skip_child_includes = [
|
||||
'linux',
|
||||
]
|
||||
|
||||
specific_include_rules = {
|
||||
'^minidump_fuzzer\.cc$': [
|
||||
'+base',
|
||||
'+google_breakpad',
|
||||
'+processor',
|
||||
'+testing',
|
||||
],
|
||||
}
|
9
third_party/breakpad/README.chromium
vendored
9
third_party/breakpad/README.chromium
vendored
@ -1,9 +0,0 @@
|
||||
Name: Breakpad, An open-source multi-platform crash reporting system
|
||||
Short Name: breakpad
|
||||
URL: https://chromium.googlesource.com/breakpad/breakpad
|
||||
Version: unknown
|
||||
License: New BSD, Apple PSL 2.0 and Apache 2.0
|
||||
Security Critical: yes
|
||||
|
||||
The upstream Breakpad project is pulled into the breakpad/ subdirectory via
|
||||
DEPS.
|
@ -119,6 +119,11 @@ PATH_SPECIFIC_WHITELISTED_LICENSES = {
|
||||
'UNKNOWN',
|
||||
],
|
||||
|
||||
# http://code.google.com/p/google-breakpad/issues/detail?id=450
|
||||
'breakpad/src': [
|
||||
'UNKNOWN',
|
||||
],
|
||||
|
||||
'buildtools/third_party/libc++/trunk/test': [
|
||||
# http://llvm.org/bugs/show_bug.cgi?id=25980
|
||||
'UNKNOWN',
|
||||
@ -181,11 +186,6 @@ PATH_SPECIFIC_WHITELISTED_LICENSES = {
|
||||
'UNKNOWN',
|
||||
],
|
||||
|
||||
# https://crbug.com/google-breakpad/450
|
||||
'third_party/breakpad/breakpad': [
|
||||
'UNKNOWN',
|
||||
],
|
||||
|
||||
# http://crbug.com/603946
|
||||
# https://github.com/google/oauth2client/issues/331
|
||||
# Just imports googleapiclient. Chromite is not shipped.
|
||||
|
@ -20,5 +20,5 @@ fun:unpack_RGBA8888
|
||||
fun:unpack_RGB888
|
||||
|
||||
# False positives due to use of linux_syscall_support. http://crbug.com/394028
|
||||
src:*/third_party/breakpad/breakpad/src/*
|
||||
src:*/breakpad/src/*
|
||||
src:*/components/crash/content/app/breakpad_linux.cc
|
||||
|
@ -38,14 +38,14 @@ group("telemetry_chrome_test") {
|
||||
}
|
||||
|
||||
if (is_linux) {
|
||||
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
|
||||
data_deps += [ "//breakpad:dump_syms($host_toolchain)" ]
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
data_deps += [
|
||||
"//breakpad:dump_syms",
|
||||
"//chrome:chrome_framework",
|
||||
"//chrome:chrome_helper_app",
|
||||
"//third_party/breakpad:dump_syms",
|
||||
"//third_party/crashpad/crashpad/tools:crashpad_database_util",
|
||||
]
|
||||
}
|
||||
|
Reference in New Issue
Block a user