| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_ALLOCATION_RECORDER_CRASH_HANDLER_PAYLOAD_H_ |
| #define COMPONENTS_ALLOCATION_RECORDER_CRASH_HANDLER_PAYLOAD_H_ |
| |
| #include <string_view> |
| |
| #include "base/containers/span.h" |
| #include "components/allocation_recorder/crash_handler/memory_operation_report.pb.h" |
| |
| namespace base::debug::tracer { |
| class AllocationTraceRecorder; |
| } // namespace base::debug::tracer |
| |
| namespace allocation_recorder::crash_handler { |
| |
| // Various functions to create the payload that is included into to the Crashpad |
| // report. The payload is a Protocol Buffers message. Please see |
| // memory_operation_report.proto for the exact content and format. |
| |
| // Create a payload with the MemoryOperationReport set from the content of the |
| // passed |recorder|. |
| allocation_recorder::Payload CreatePayloadWithMemoryOperationReport( |
| const base::debug::tracer::AllocationTraceRecorder& recorder); |
| |
| // Create a payload with the ProcessingFailures set from the passed |
| // |error_messages|. |
| allocation_recorder::Payload CreatePayloadWithProcessingFailures( |
| base::span<const std::string_view> error_messages); |
| |
| // Create a payload with the ProcessingFailures set from the passed |
| // |error_message|. |
| inline allocation_recorder::Payload CreatePayloadWithProcessingFailures( |
| std::string_view error_message) { |
| return CreatePayloadWithProcessingFailures( |
| base::span_from_ref(error_message)); |
| } |
| |
| } // namespace allocation_recorder::crash_handler |
| #endif // COMPONENTS_ALLOCATION_RECORDER_CRASH_HANDLER_PAYLOAD_H_ |