blob: 03f3a5fcb30af92d9fa9d5bf004f6f91159986e1 [file] [log] [blame]
// 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_