// Copyright 2019 The Chromium 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 BASE_PROFILER_NATIVE_UNWINDER_WIN_H_ #define BASE_PROFILER_NATIVE_UNWINDER_WIN_H_ #include "base/macros.h" #include "base/profiler/unwinder.h" namespace base { // Native unwinder implementation for Windows, using RtlVirtualUnwind. class NativeUnwinderWin : public Unwinder { public: NativeUnwinderWin() = default; NativeUnwinderWin(const NativeUnwinderWin&) = delete; NativeUnwinderWin& operator=(const NativeUnwinderWin&) = delete; // Unwinder: bool CanUnwindFrom(const Frame& current_frame) const override; UnwindResult TryUnwind(RegisterContext* thread_context, uintptr_t stack_top, ModuleCache* module_cache, std::vector* stack) const override; }; } // namespace base #endif // BASE_PROFILER_NATIVE_UNWINDER_WIN_H_