// Copyright 2021 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef INCLUDE_V8_UNWINDER_H_ #define INCLUDE_V8_UNWINDER_H_ #include <memory> #include "v8-embedder-state-scope.h" // NOLINT(build/include_directory) #include "v8config.h" // NOLINT(build/include_directory) namespace v8 { // Holds the callee saved registers needed for the stack unwinder. It is the // empty struct if no registers are required. Implemented in // include/v8-unwinder-state.h. struct CalleeSavedRegisters; // A RegisterState represents the current state of registers used // by the sampling profiler API. struct V8_EXPORT RegisterState { … }; // A StateTag represents a possible state of the VM. enum StateTag : uint16_t { … }; // The output structure filled up by GetStackSample API function. struct SampleInfo { … }; struct MemoryRange { … }; struct JSEntryStub { … }; struct JSEntryStubs { … }; /** * Various helpers for skipping over V8 frames in a given stack. * * The unwinder API is only supported on the x64, ARM64 and ARM32 architectures. */ class V8_EXPORT Unwinder { … }; } // namespace v8 #endif // INCLUDE_V8_UNWINDER_H_