0

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:
Peter Conn
2017-09-25 09:58:57 +00:00
committed by Commit Bot
parent ee016dd09a
commit 0b24f77010
80 changed files with 1162 additions and 1169 deletions
.gitignore.gnBUILD.gnDEPSPRESUBMIT.py
base
breakpad
chrome
chrome_elf
chromecast
components
content/shell
docs
ios
native_client_sdk/src
remoting
testing/buildbot
third_party
tools
checklicenses
msan
perf
chrome_telemetry_build

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

@ -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/*",

@ -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

@ -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

@ -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

@ -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="&quot;$(SolutionDir)..\third_party\breakpad\breakpad\src&quot;"
AdditionalIncludeDirectories="&quot;$(SolutionDir)..\breakpad\src&quot;"
/>
</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": {

@ -29,7 +29,6 @@
/bison
/boringssl/src
/bouncycastle/lib/*.jar
/breakpad/breakpad
/byte_buddy/lib/*.jar
/cacheinvalidation/cacheinvalidation_unittests_run.xml
/cardboard-java/src

@ -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" ]
}
}

@ -1,12 +0,0 @@
skip_child_includes = [
'linux',
]
specific_include_rules = {
'^minidump_fuzzer\.cc$': [
'+base',
'+google_breakpad',
'+processor',
'+testing',
],
}

@ -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",
]
}