blob: 16390e0096966262fdd13360ac3d4fbbc74c2985 [file] [log] [blame]
# Copyright 2022 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Description:
# Crashpad is a crash-reporting system.
load("//third_party/crashpad:copts.bzl", "CRASHPAD_COMMON_COPTS")
# Makes crashpad headers available at their subdirectory locations.
cc_library(
name = "internal",
hdrs = ["src/package.h"],
copts = CRASHPAD_COMMON_COPTS,
includes = ["src"],
)
cc_library(
name = "minidump",
srcs = [
"src/minidump/minidump_annotation_writer.cc",
"src/minidump/minidump_byte_array_writer.cc",
"src/minidump/minidump_context_writer.cc",
"src/minidump/minidump_crashpad_info_writer.cc",
"src/minidump/minidump_exception_writer.cc",
"src/minidump/minidump_file_writer.cc",
"src/minidump/minidump_handle_writer.cc",
"src/minidump/minidump_memory_info_writer.cc",
"src/minidump/minidump_memory_writer.cc",
"src/minidump/minidump_misc_info_writer.cc",
"src/minidump/minidump_module_crashpad_info_writer.cc",
"src/minidump/minidump_module_writer.cc",
"src/minidump/minidump_rva_list_writer.cc",
"src/minidump/minidump_simple_string_dictionary_writer.cc",
"src/minidump/minidump_stream_writer.cc",
"src/minidump/minidump_string_writer.cc",
"src/minidump/minidump_system_info_writer.cc",
"src/minidump/minidump_thread_id_map.cc",
"src/minidump/minidump_thread_name_list_writer.cc",
"src/minidump/minidump_thread_writer.cc",
"src/minidump/minidump_unloaded_module_writer.cc",
"src/minidump/minidump_user_extension_stream_data_source.cc",
"src/minidump/minidump_user_stream_writer.cc",
"src/minidump/minidump_writable.cc",
"src/minidump/minidump_writer_util.cc",
"src/minidump/minidump_writer_util.h",
],
hdrs = [
"src/minidump/minidump_annotation_writer.h",
"src/minidump/minidump_byte_array_writer.h",
"src/minidump/minidump_context.h",
"src/minidump/minidump_context_writer.h",
"src/minidump/minidump_crashpad_info_writer.h",
"src/minidump/minidump_exception_writer.h",
"src/minidump/minidump_extensions.h",
"src/minidump/minidump_file_writer.h",
"src/minidump/minidump_handle_writer.h",
"src/minidump/minidump_memory_info_writer.h",
"src/minidump/minidump_memory_writer.h",
"src/minidump/minidump_misc_info_writer.h",
"src/minidump/minidump_module_crashpad_info_writer.h",
"src/minidump/minidump_module_writer.h",
"src/minidump/minidump_rva_list_writer.h",
"src/minidump/minidump_simple_string_dictionary_writer.h",
"src/minidump/minidump_stream_writer.h",
"src/minidump/minidump_string_writer.h",
"src/minidump/minidump_system_info_writer.h",
"src/minidump/minidump_thread_id_map.h",
"src/minidump/minidump_thread_name_list_writer.h",
"src/minidump/minidump_thread_writer.h",
"src/minidump/minidump_unloaded_module_writer.h",
"src/minidump/minidump_user_extension_stream_data_source.h",
"src/minidump/minidump_user_stream_writer.h",
"src/minidump/minidump_writable.h",
],
copts = CRASHPAD_COMMON_COPTS,
features = ["-use_header_modules"],
visibility = ["//visibility:public"],
deps = [
":compat",
":internal",
":minidump_format",
":snapshot",
":util",
"//third_party/mini_chromium:base",
],
)
cc_library(
name = "minidump_extensions_header",
hdrs = [
"src/minidump/minidump_extensions.h",
],
copts = CRASHPAD_COMMON_COPTS,
features = ["-use_header_modules"],
deps = [
":compat",
":internal",
":util",
"//third_party/mini_chromium:base",
],
)
cc_library(
name = "minidump_format",
srcs = [
"src/minidump/minidump_extensions.cc",
],
hdrs = [
"src/minidump/minidump_context.h",
"src/minidump/minidump_extensions.h",
],
copts = CRASHPAD_COMMON_COPTS,
features = ["-use_header_modules"],
deps = [
":compat",
":snapshot_context",
":util",
"//third_party/mini_chromium:base",
],
)
COMPAT_LINUX_SOURCES = [
"src/compat/linux/sys/mman_memfd_create.cc",
]
COMPAT_LINUX_HEADERS = [
"src/compat/linux/signal.h",
"src/compat/linux/sys/mman.h",
"src/compat/linux/sys/ptrace.h",
"src/compat/linux/sys/user.h",
]
COMPAT_APPLE_SOURCES = [
]
COMPAT_APPLE_HEADERS = [
"src/compat/mac/Availability.h",
"src/compat/mac/AvailabilityVersions.h",
"src/compat/mac/kern/exc_resource.h",
"src/compat/mac/mach/mach.h",
"src/compat/mac/mach-o/loader.h",
"src/compat/mac/sys/resource.h",
]
COMPAT_MAC_SOURCES = [
]
COMPAT_MAC_HEADERS = [
"src/compat/mac/mach/i386/thread_state.h",
]
COMPAT_NONMAC_SOURCES = [
]
COMPAT_NONMAC_HEADERS = [
"src/compat/non_mac/mach/mach.h",
]
COMPAT_NONWIN_SOURCES = [
"src/compat/non_win/minwinbase.h",
"src/compat/non_win/timezoneapi.h",
"src/compat/non_win/verrsrc.h",
]
COMPAT_NONWIN_HEADERS = [
"src/compat/non_win/dbghelp.h",
"src/compat/non_win/windows.h",
"src/compat/non_win/winnt.h",
]
cc_library(
name = "compat",
srcs = select({
"@platforms//os:fuchsia": COMPAT_NONWIN_SOURCES + COMPAT_NONMAC_SOURCES,
"@platforms//os:osx": COMPAT_APPLE_SOURCES + COMPAT_MAC_SOURCES +
COMPAT_NONWIN_SOURCES,
"@platforms//os:linux": COMPAT_LINUX_SOURCES +
COMPAT_NONMAC_SOURCES + COMPAT_NONWIN_SOURCES,
}),
hdrs = select({
"@platforms//os:fuchsia": COMPAT_NONWIN_HEADERS + COMPAT_NONMAC_HEADERS,
"@platforms//os:osx": COMPAT_APPLE_HEADERS + COMPAT_MAC_HEADERS +
COMPAT_NONWIN_HEADERS,
"@platforms//os:linux": COMPAT_LINUX_HEADERS +
COMPAT_NONMAC_HEADERS + COMPAT_NONWIN_HEADERS,
}),
includes = [
"src/compat/non_mac",
"src/compat/non_win",
],
linkopts = ["-ldl"],
visibility = ["//visibility:public"],
deps = [
":internal",
":util_no_cfi_icall",
"//third_party/mini_chromium:base",
],
)
CRASHPAD_UTIL_SOURCES = [
"src/util/file/delimited_file_reader.cc",
"src/util/file/file_helper.cc",
"src/util/file/file_io.cc",
"src/util/file/file_reader.cc",
"src/util/file/file_seeker.cc",
"src/util/file/file_seeker.h",
"src/util/file/file_writer.cc",
"src/util/file/output_stream_file_writer.cc",
"src/util/file/scoped_remove_file.cc",
"src/util/file/string_file.cc",
"src/util/misc/initialization_state_dcheck.cc",
"src/util/misc/lexing.cc",
"src/util/misc/lexing.h",
"src/util/misc/metrics.cc",
"src/util/misc/pdb_structures.cc",
"src/util/misc/random_string.cc",
"src/util/misc/range_set.cc",
"src/util/misc/reinterpret_bytes.cc",
"src/util/misc/scoped_forbid_return.cc",
"src/util/misc/symbolic_constants_common.h",
"src/util/misc/time.cc",
"src/util/misc/uuid.cc",
"src/util/misc/zlib.cc",
"src/util/net/http_body.cc",
"src/util/net/http_body_gzip.cc",
"src/util/net/http_multipart_builder.cc",
"src/util/net/http_transport.cc",
"src/util/net/url.cc",
"src/util/numeric/checked_address_range.cc",
"src/util/process/process_memory.cc",
"src/util/process/process_memory_range.cc",
"src/util/stdlib/aligned_allocator.cc",
"src/util/stdlib/string_number_conversion.cc",
"src/util/stdlib/strlcpy.cc",
"src/util/stdlib/strnlen.cc",
"src/util/stream/base94_output_stream.cc",
"src/util/stream/file_encoder.cc",
"src/util/stream/file_output_stream.cc",
"src/util/stream/log_output_stream.cc",
"src/util/stream/zlib_output_stream.cc",
"src/util/string/split_string.cc",
"src/util/thread/thread.cc",
"src/util/thread/thread_log_messages.cc",
"src/util/thread/worker_thread.cc",
]
CRASHPAD_UTIL_HEADERS = [
"src/util/file/delimited_file_reader.h",
"src/util/file/directory_reader.h",
"src/util/file/file_helper.h",
"src/util/file/file_io.h",
"src/util/file/file_reader.h",
"src/util/file/file_writer.h",
"src/util/file/filesystem.h",
"src/util/file/output_stream_file_writer.h",
"src/util/file/scoped_remove_file.h",
"src/util/file/string_file.h",
"src/util/misc/address_sanitizer.h",
"src/util/misc/address_types.h",
"src/util/misc/arm64_pac_bti.S",
"src/util/misc/arraysize.h",
"src/util/misc/as_underlying_type.h",
"src/util/misc/capture_context.h",
"src/util/misc/clock.h",
"src/util/misc/elf_note_types.h",
"src/util/misc/from_pointer_cast.h",
"src/util/misc/implicit_cast.h",
"src/util/misc/initialization_state.h",
"src/util/misc/initialization_state_dcheck.h",
"src/util/misc/memory_sanitizer.h",
"src/util/misc/metrics.h",
"src/util/misc/paths.h",
"src/util/misc/pdb_structures.h",
"src/util/misc/random_string.h",
"src/util/misc/range_set.h",
"src/util/misc/reinterpret_bytes.h",
"src/util/misc/scoped_forbid_return.h",
"src/util/misc/time.h",
"src/util/misc/tri_state.h",
"src/util/misc/uuid.h",
"src/util/misc/zlib.h",
"src/util/net/http_body.h",
"src/util/net/http_body_gzip.h",
"src/util/net/http_headers.h",
"src/util/net/http_multipart_builder.h",
"src/util/net/http_transport.h",
"src/util/net/url.h",
"src/util/numeric/checked_address_range.h",
"src/util/numeric/checked_range.h",
"src/util/numeric/checked_vm_address_range.h",
"src/util/numeric/in_range_cast.h",
"src/util/numeric/int128.h",
"src/util/numeric/safe_assignment.h",
"src/util/process/process_id.h",
"src/util/process/process_memory.h",
"src/util/process/process_memory_native.h",
"src/util/process/process_memory_range.h",
"src/util/stdlib/aligned_allocator.h",
"src/util/stdlib/map_insert.h",
"src/util/stdlib/string_number_conversion.h",
"src/util/stdlib/strlcpy.h",
"src/util/stdlib/strnlen.h",
"src/util/stdlib/thread_safe_vector.h",
"src/util/stream/base94_output_stream.h",
"src/util/stream/file_encoder.h",
"src/util/stream/file_output_stream.h",
"src/util/stream/log_output_stream.h",
"src/util/stream/output_stream_interface.h",
"src/util/stream/zlib_output_stream.h",
"src/util/string/split_string.h",
"src/util/synchronization/semaphore.h",
"src/util/thread/stoppable.h",
"src/util/thread/thread.h",
"src/util/thread/thread_log_messages.h",
"src/util/thread/worker_thread.h",
]
CRASHPAD_UTIL_LINUX_SOURCES = [
"src/util/linux/auxiliary_vector.cc",
"src/util/linux/checked_linux_address_range.h",
"src/util/linux/direct_ptrace_connection.cc",
"src/util/linux/exception_handler_client.cc",
"src/util/linux/exception_handler_protocol.cc",
"src/util/linux/memory_map.cc",
"src/util/linux/proc_stat_reader.cc",
"src/util/linux/proc_task_reader.cc",
"src/util/linux/ptrace_broker.cc",
"src/util/linux/ptrace_client.cc",
"src/util/linux/ptracer.cc",
"src/util/linux/scoped_pr_set_dumpable.cc",
"src/util/linux/scoped_pr_set_ptracer.cc",
"src/util/linux/scoped_ptrace_attach.cc",
"src/util/linux/socket.cc",
"src/util/linux/thread_info.cc",
"src/util/misc/capture_context_linux.S",
"src/util/misc/paths_linux.cc",
"src/util/misc/time_linux.cc",
"src/util/net/http_transport_socket.cc",
"src/util/posix/process_info_linux.cc",
"src/util/process/process_memory_linux.cc",
"src/util/process/process_memory_sanitized.cc",
]
CRASHPAD_UTIL_LINUX_HEADERS = [
"src/util/linux/address_types.h",
"src/util/linux/auxiliary_vector.h",
"src/util/linux/direct_ptrace_connection.h",
"src/util/linux/exception_handler_client.h",
"src/util/linux/exception_handler_protocol.h",
"src/util/linux/exception_information.h",
"src/util/linux/memory_map.h",
"src/util/linux/proc_stat_reader.h",
"src/util/linux/proc_task_reader.h",
"src/util/linux/ptrace_broker.h",
"src/util/linux/ptrace_client.h",
"src/util/linux/ptrace_connection.h",
"src/util/linux/ptracer.h",
"src/util/linux/scoped_pr_set_dumpable.h",
"src/util/linux/scoped_pr_set_ptracer.h",
"src/util/linux/scoped_ptrace_attach.h",
"src/util/linux/socket.h",
"src/util/linux/thread_info.h",
"src/util/linux/traits.h",
"src/util/process/process_memory_linux.h",
"src/util/process/process_memory_sanitized.h",
]
CRASHPAD_UTIL_MACOS_HEADERS = [
"src/util/process/process_memory_mac.h",
"src/util/ios/ios_intermediate_dump_format.h",
"src/util/ios/scoped_background_task.h",
]
CRASHPAD_UTIL_POSIX_SOURCES = [
"src/util/file/directory_reader_posix.cc",
"src/util/file/file_io_posix.cc",
"src/util/file/filesystem_posix.cc",
"src/util/misc/clock_posix.cc",
"src/util/posix/close_multiple.cc",
"src/util/posix/close_stdio.cc",
"src/util/posix/drop_privileges.cc",
"src/util/posix/scoped_dir.cc",
"src/util/posix/scoped_mmap.cc",
"src/util/posix/signals.cc",
"src/util/posix/spawn_subprocess.cc",
"src/util/posix/symbolic_constants_posix.cc",
"src/util/synchronization/semaphore_posix.cc",
"src/util/thread/thread_posix.cc",
]
CRASHPAD_UTIL_POSIX_HEADERS = [
"src/util/posix/close_multiple.h",
"src/util/posix/close_stdio.h",
"src/util/posix/drop_privileges.h",
"src/util/posix/process_info.h",
"src/util/posix/scoped_dir.h",
"src/util/posix/scoped_mmap.h",
"src/util/posix/signals.h",
"src/util/posix/spawn_subprocess.h",
"src/util/posix/symbolic_constants_posix.h",
]
CRASHPAD_UTIL_FUCHSIA_POSIX_SOURCES = [
"src/util/file/directory_reader_posix.cc",
"src/util/file/file_io_posix.cc",
"src/util/file/filesystem_posix.cc",
"src/util/misc/clock_posix.cc",
"src/util/posix/close_stdio.cc",
"src/util/posix/scoped_dir.cc",
"src/util/posix/scoped_mmap.cc",
"src/util/posix/signals.cc",
"src/util/synchronization/semaphore_posix.cc",
"src/util/thread/thread_posix.cc",
]
CRASHPAD_UTIL_FUCHSIA_POSIX_HEADERS = [
"src/util/posix/close_stdio.h",
"src/util/posix/scoped_dir.h",
"src/util/posix/scoped_mmap.h",
"src/util/posix/signals.h",
]
CRASHPAD_UTIL_FUCHSIA_SOURCES = [
"src/util/fuchsia/koid_utilities.cc",
"src/util/fuchsia/scoped_task_suspend.cc",
"src/util/misc/capture_context_fuchsia.S",
"src/util/misc/paths_fuchsia.cc",
"src/util/process/process_memory_fuchsia.cc",
]
CRASHPAD_UTIL_FUCHSIA_HEADERS = [
"src/util/fuchsia/koid_utilities.h",
"src/util/fuchsia/scoped_task_suspend.h",
"src/util/fuchsia/traits.h",
"src/util/process/process_memory_fuchsia.h",
]
cc_library(
name = "util",
srcs = CRASHPAD_UTIL_SOURCES +
select({
"@platforms//os:fuchsia": CRASHPAD_UTIL_FUCHSIA_POSIX_SOURCES +
CRASHPAD_UTIL_FUCHSIA_SOURCES,
"@platforms//os:osx": CRASHPAD_UTIL_POSIX_SOURCES,
"@platforms//os:linux": CRASHPAD_UTIL_LINUX_SOURCES +
CRASHPAD_UTIL_POSIX_SOURCES,
}),
hdrs = CRASHPAD_UTIL_HEADERS +
select({
"@platforms//os:fuchsia": CRASHPAD_UTIL_FUCHSIA_POSIX_HEADERS +
CRASHPAD_UTIL_FUCHSIA_HEADERS,
"@platforms//os:osx": CRASHPAD_UTIL_MACOS_HEADERS + CRASHPAD_UTIL_POSIX_HEADERS,
"@platforms//os:linux": CRASHPAD_UTIL_LINUX_HEADERS +
CRASHPAD_UTIL_POSIX_HEADERS,
}),
copts = CRASHPAD_COMMON_COPTS + [
"-DZLIB_CONST",
"-Wno-vla",
],
features = ["-use_header_modules"],
includes = ["src"],
linkopts = select({
"@platforms//os:linux": [
# There is an intentional reference cycle between thread_posix.cc
# and client/pthread_create_linux.cc, which provides an interposer
# for pthread_create.
"-Wl,--warn-backrefs-exclude=*/pthread_create/pthread_create_linux.*",
],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
deps = [
":util_no_cfi_icall",
":internal",
":compat",
":third_party_lss",
":third_party_zlib",
"//third_party/mini_chromium:base",
] + select({
"@platforms//os:fuchsia": ["@fuchsia_sdk//pkg/zx"],
"//conditions:default": [],
}),
)
cc_library(
name = "third_party_lss",
hdrs = ["src/third_party/lss/lss.h"],
defines = ["CRASHPAD_LSS_SOURCE_FUCHSIA"],
deps = ["//third_party/linux-syscall-support"],
)
cc_library(
name = "third_party_zlib",
hdrs = ["src/third_party/zlib/zlib_crashpad.h"],
defines = ["CRASHPAD_ZLIB_SOURCE_EXTERNAL"],
deps = ["//third_party/zlib:zlibsystem"],
)
cc_library(
name = "util_no_cfi_icall",
hdrs = ["src/util/misc/no_cfi_icall.h"],
features = ["-use_header_modules"],
deps = ["//third_party/mini_chromium:base"],
)
CRASHPAD_SNAPSHOT_SOURCES = [
"src/snapshot/annotation_snapshot.cc",
"src/snapshot/capture_memory.cc",
"src/snapshot/capture_memory.h",
"src/snapshot/crashpad_info_client_options.cc",
"src/snapshot/handle_snapshot.cc",
"src/snapshot/memory_snapshot.cc",
"src/snapshot/memory_snapshot_generic.h",
"src/snapshot/minidump/exception_snapshot_minidump.cc",
"src/snapshot/minidump/memory_snapshot_minidump.cc",
"src/snapshot/minidump/minidump_annotation_reader.cc",
"src/snapshot/minidump/minidump_context_converter.cc",
"src/snapshot/minidump/minidump_simple_string_dictionary_reader.cc",
"src/snapshot/minidump/minidump_simple_string_dictionary_reader.h",
"src/snapshot/minidump/minidump_string_list_reader.cc",
"src/snapshot/minidump/minidump_string_list_reader.h",
"src/snapshot/minidump/minidump_string_reader.cc",
"src/snapshot/minidump/minidump_string_reader.h",
"src/snapshot/minidump/module_snapshot_minidump.cc",
"src/snapshot/minidump/module_snapshot_minidump.h",
"src/snapshot/minidump/process_snapshot_minidump.cc",
"src/snapshot/minidump/system_snapshot_minidump.cc",
"src/snapshot/minidump/thread_snapshot_minidump.cc",
"src/snapshot/unloaded_module_snapshot.cc",
]
CRASHPAD_SNAPSHOT_HEADERS = [
"src/snapshot/annotation_snapshot.h",
"src/snapshot/cpu_architecture.h",
"src/snapshot/cpu_context.h",
"src/snapshot/crashpad_info_client_options.h",
"src/snapshot/exception_snapshot.h",
"src/snapshot/handle_snapshot.h",
"src/snapshot/memory_map_region_snapshot.h",
"src/snapshot/memory_snapshot.h",
"src/snapshot/minidump/exception_snapshot_minidump.h",
"src/snapshot/minidump/memory_snapshot_minidump.h",
"src/snapshot/minidump/minidump_annotation_reader.h",
"src/snapshot/minidump/minidump_context_converter.h",
"src/snapshot/minidump/minidump_stream.h",
"src/snapshot/minidump/process_snapshot_minidump.h",
"src/snapshot/minidump/system_snapshot_minidump.h",
"src/snapshot/minidump/thread_snapshot_minidump.h",
"src/snapshot/module_snapshot.h",
"src/snapshot/process_snapshot.h",
"src/snapshot/system_snapshot.h",
"src/snapshot/thread_snapshot.h",
"src/snapshot/unloaded_module_snapshot.h",
]
CRASHPAD_SNAPSHOT_TEXTUAL_HEADERS = [
"src/snapshot/snapshot_constants.h",
]
CRASHPAD_SNAPSHOT_MACOS_SOURCES = [
"src/snapshot/mac/cpu_context_mac.cc",
"src/snapshot/mac/exception_snapshot_mac.cc",
"src/snapshot/mac/mach_o_image_annotations_reader.cc",
"src/snapshot/mac/mach_o_image_reader.cc",
"src/snapshot/mac/mach_o_image_segment_reader.cc",
"src/snapshot/mac/mach_o_image_symbol_table_reader.cc",
"src/snapshot/mac/mach_o_image_symbol_table_reader.h",
"src/snapshot/mac/module_snapshot_mac.cc",
"src/snapshot/mac/process_reader_mac.cc",
"src/snapshot/mac/process_snapshot_mac.cc",
"src/snapshot/mac/process_types.cc",
"src/snapshot/mac/process_types/custom.cc",
"src/snapshot/mac/system_snapshot_mac.cc",
"src/snapshot/mac/thread_snapshot_mac.cc",
]
CRASHPAD_SNAPSHOT_MACOS_HEADERS = [
"src/snapshot/mac/cpu_context_mac.h",
"src/snapshot/mac/exception_snapshot_mac.h",
"src/snapshot/mac/mach_o_image_annotations_reader.h",
"src/snapshot/mac/mach_o_image_reader.h",
"src/snapshot/mac/mach_o_image_segment_reader.h",
"src/snapshot/mac/module_snapshot_mac.h",
"src/snapshot/mac/process_reader_mac.h",
"src/snapshot/mac/process_snapshot_mac.h",
"src/snapshot/mac/process_types.h",
"src/snapshot/mac/process_types/internal.h",
"src/snapshot/mac/process_types/traits.h",
"src/snapshot/mac/system_snapshot_mac.h",
"src/snapshot/mac/thread_snapshot_mac.h",
]
CRASHPAD_SNAPSHOT_MACOS_TEXTUAL_HEADERS = [
"src/snapshot/mac/process_types/all.proctype",
"src/snapshot/mac/process_types/annotation.proctype",
"src/snapshot/mac/process_types/crashpad_info.proctype",
"src/snapshot/mac/process_types/crashreporterclient.proctype",
"src/snapshot/mac/process_types/dyld_images.proctype",
"src/snapshot/mac/process_types/flavors.h",
"src/snapshot/mac/process_types/loader.proctype",
"src/snapshot/mac/process_types/nlist.proctype",
]
CRASHPAD_SNAPSHOT_POSIX_SOURCES = [
"src/snapshot/posix/timezone.cc",
]
CRASHPAD_SNAPSHOT_POSIX_HEADERS = [
"src/snapshot/posix/timezone.h",
]
CRASHPAD_SNAPSHOT_LINUX_SOURCES = [
"src/snapshot/crashpad_types/crashpad_info_reader.cc",
"src/snapshot/crashpad_types/image_annotation_reader.cc",
"src/snapshot/elf/elf_dynamic_array_reader.cc",
"src/snapshot/elf/elf_image_reader.cc",
"src/snapshot/elf/elf_symbol_table_reader.cc",
"src/snapshot/elf/module_snapshot_elf.cc",
"src/snapshot/linux/capture_memory_delegate_linux.h",
"src/snapshot/linux/capture_memory_delegate_linux.cc",
"src/snapshot/linux/cpu_context_linux.cc",
"src/snapshot/linux/cpu_context_linux.h",
"src/snapshot/linux/debug_rendezvous.cc",
"src/snapshot/linux/exception_snapshot_linux.cc",
"src/snapshot/linux/process_reader_linux.cc",
"src/snapshot/linux/process_snapshot_linux.cc",
"src/snapshot/linux/system_snapshot_linux.cc",
"src/snapshot/linux/thread_snapshot_linux.cc",
"src/snapshot/sanitized/memory_snapshot_sanitized.cc",
"src/snapshot/sanitized/module_snapshot_sanitized.cc",
"src/snapshot/sanitized/process_snapshot_sanitized.cc",
"src/snapshot/sanitized/sanitization_information.cc",
"src/snapshot/sanitized/thread_snapshot_sanitized.cc",
]
CRASHPAD_SNAPSHOT_LINUX_HEADERS = [
"src/snapshot/crashpad_types/crashpad_info_reader.h",
"src/snapshot/crashpad_types/image_annotation_reader.h",
"src/snapshot/elf/elf_dynamic_array_reader.h",
"src/snapshot/elf/elf_image_reader.h",
"src/snapshot/elf/elf_symbol_table_reader.h",
"src/snapshot/elf/module_snapshot_elf.h",
"src/snapshot/linux/debug_rendezvous.h",
"src/snapshot/linux/exception_snapshot_linux.h",
"src/snapshot/linux/process_reader_linux.h",
"src/snapshot/linux/process_snapshot_linux.h",
"src/snapshot/linux/system_snapshot_linux.h",
"src/snapshot/linux/thread_snapshot_linux.h",
"src/snapshot/sanitized/memory_snapshot_sanitized.h",
"src/snapshot/sanitized/module_snapshot_sanitized.h",
"src/snapshot/sanitized/process_snapshot_sanitized.h",
"src/snapshot/sanitized/sanitization_information.h",
"src/snapshot/sanitized/thread_snapshot_sanitized.h",
]
CRASHPAD_SNAPSHOT_FUCHSIA_SOURCES = [
"src/snapshot/crashpad_types/crashpad_info_reader.cc",
"src/snapshot/crashpad_types/image_annotation_reader.cc",
"src/snapshot/elf/elf_dynamic_array_reader.cc",
"src/snapshot/elf/elf_image_reader.cc",
"src/snapshot/elf/elf_symbol_table_reader.cc",
"src/snapshot/elf/module_snapshot_elf.cc",
"src/snapshot/fuchsia/cpu_context_fuchsia.cc",
"src/snapshot/fuchsia/exception_snapshot_fuchsia.cc",
"src/snapshot/fuchsia/memory_map_fuchsia.cc",
"src/snapshot/fuchsia/memory_map_region_snapshot_fuchsia.cc",
"src/snapshot/fuchsia/process_reader_fuchsia.cc",
"src/snapshot/fuchsia/process_snapshot_fuchsia.cc",
"src/snapshot/fuchsia/system_snapshot_fuchsia.cc",
"src/snapshot/fuchsia/thread_snapshot_fuchsia.cc",
]
CRASHPAD_SNAPSHOT_FUCHSIA_HEADERS = [
"src/snapshot/crashpad_types/crashpad_info_reader.h",
"src/snapshot/crashpad_types/image_annotation_reader.h",
"src/snapshot/elf/elf_dynamic_array_reader.h",
"src/snapshot/elf/elf_image_reader.h",
"src/snapshot/elf/elf_symbol_table_reader.h",
"src/snapshot/elf/module_snapshot_elf.h",
"src/snapshot/fuchsia/cpu_context_fuchsia.h",
"src/snapshot/fuchsia/exception_snapshot_fuchsia.h",
"src/snapshot/fuchsia/memory_map_fuchsia.h",
"src/snapshot/fuchsia/memory_map_region_snapshot_fuchsia.h",
"src/snapshot/fuchsia/process_reader_fuchsia.h",
"src/snapshot/fuchsia/process_snapshot_fuchsia.h",
"src/snapshot/fuchsia/system_snapshot_fuchsia.h",
"src/snapshot/fuchsia/thread_snapshot_fuchsia.h",
]
CRASHPAD_SNAPSHOT_LINUX_TEXTUAL_HEADERS = [
"src/snapshot/linux/signal_context.h",
]
CRASHPAD_SNAPSHOT_X86_SOURCES = [
"src/snapshot/x86/cpuid_reader.cc",
"src/snapshot/x86/cpuid_reader.h",
]
cc_library(
name = "snapshot",
srcs = CRASHPAD_SNAPSHOT_SOURCES +
select({
"@platforms//os:osx": CRASHPAD_SNAPSHOT_MACOS_SOURCES +
CRASHPAD_SNAPSHOT_POSIX_SOURCES,
"@platforms//os:fuchsia": CRASHPAD_SNAPSHOT_FUCHSIA_SOURCES +
CRASHPAD_SNAPSHOT_POSIX_SOURCES,
"@platforms//os:linux": CRASHPAD_SNAPSHOT_LINUX_SOURCES +
CRASHPAD_SNAPSHOT_POSIX_SOURCES,
}) +
select({
"@platforms//cpu:x86_64": CRASHPAD_SNAPSHOT_X86_SOURCES,
"//conditions:default": [],
}),
hdrs = CRASHPAD_SNAPSHOT_HEADERS +
select({
"@platforms//os:osx": CRASHPAD_SNAPSHOT_MACOS_HEADERS +
CRASHPAD_SNAPSHOT_POSIX_HEADERS,
"@platforms//os:fuchsia": CRASHPAD_SNAPSHOT_FUCHSIA_HEADERS +
CRASHPAD_SNAPSHOT_POSIX_HEADERS,
"@platforms//os:linux": CRASHPAD_SNAPSHOT_LINUX_HEADERS +
CRASHPAD_SNAPSHOT_POSIX_HEADERS,
}),
copts = CRASHPAD_COMMON_COPTS,
features = ["-use_header_modules"],
includes = ["src"],
textual_hdrs = CRASHPAD_SNAPSHOT_TEXTUAL_HEADERS + select({
"@platforms//os:osx": CRASHPAD_SNAPSHOT_MACOS_TEXTUAL_HEADERS,
"@platforms//os:linux": CRASHPAD_SNAPSHOT_LINUX_TEXTUAL_HEADERS,
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
deps = [
":snapshot_context",
":internal",
":client_common",
":compat",
":minidump_extensions_header",
":minidump_format",
":util",
"//third_party/mini_chromium:base",
] + select({
# TODO(jayzhuang): Mac targets TBA.
# "@platforms//os:osx": [
# "//third_party/crashpad/crashpad/util:util_mac",
# "//third_party/mini_chromium:base_mac",
# ],
"@platforms//os:fuchsia": ["@fuchsia_sdk//pkg/zx"],
"//conditions:default": [],
}),
)
cc_library(
name = "snapshot_context",
srcs = [
"src/snapshot/cpu_context.cc",
],
hdrs = [
"src/snapshot/cpu_architecture.h",
"src/snapshot/cpu_context.h",
],
copts = CRASHPAD_COMMON_COPTS,
features = ["-use_header_modules"],
deps = [
"//third_party/crashpad:util",
"//third_party/mini_chromium:base",
],
)
cc_library(
name = "client_common",
srcs = [
"src/client/annotation.cc",
"src/client/annotation_list.cc",
"src/client/crash_report_database.cc",
"src/client/crashpad_info.cc",
"src/client/settings.cc",
] + select({
"//conditions:default": [
"src/client/crashpad_info_note.S",
"src/client/crash_report_database_generic.cc",
],
}),
hdrs = [
"src/client/annotation.h",
"src/client/annotation_list.h",
"src/client/crash_report_database.h",
"src/client/crashpad_info.h",
"src/client/settings.h",
"src/client/simple_address_range_bag.h",
"src/client/simple_string_dictionary.h",
],
copts = CRASHPAD_COMMON_COPTS,
features = ["-use_header_modules"],
linkopts = select({
"@platforms//os:osx": [],
"//conditions:default": [],
}),
deps = [
":compat",
":util",
"//third_party/mini_chromium:base",
],
)