| # 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", |
| ], |
| ) |