blob: 6327afbc14419568f89971a0189a9897e9fcd203 [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_GWP_ASAN_COMMON_ALLOCATION_INFO_H_
#define COMPONENTS_GWP_ASAN_COMMON_ALLOCATION_INFO_H_
#include "base/containers/span.h"
#include "base/threading/platform_thread.h"
namespace gwp_asan::internal {
// Information saved for allocations and deallocations.
struct AllocationInfo {
static size_t GetStackTrace(base::span<const void*> trace);
// (De)allocation thread id or base::kInvalidThreadId if no (de)allocation
// occurred.
base::PlatformThreadId tid = base::kInvalidThreadId;
// Length used to encode the packed stack trace.
uint16_t trace_len = 0;
// Whether a stack trace has been collected for this (de)allocation.
bool trace_collected = false;
};
} // namespace gwp_asan::internal
#endif // COMPONENTS_GWP_ASAN_COMMON_ALLOCATION_INFO_H_