1// Copyright Antony Polukhin, 2016-2019. 2// 3// Distributed under the Boost Software License, Version 1.0. (See 4// accompanying file LICENSE_1_0.txt or copy at 5// http://www.boost.org/LICENSE_1_0.txt) 6 7#ifndef BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP 8#define BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP 9 10#include <boost/config.hpp> 11#ifdef BOOST_HAS_PRAGMA_ONCE 12# pragma once 13#endif 14 15#include <boost/stacktrace/safe_dump_to.hpp> 16 17#include <boost/winapi/stack_backtrace.hpp> 18 19namespace boost { namespace stacktrace { namespace detail { 20 21std::size_t this_thread_frames::collect(native_frame_ptr_t* out_frames, std::size_t max_frames_count, std::size_t skip) BOOST_NOEXCEPT { 22 return boost::winapi::RtlCaptureStackBackTrace( 23 static_cast<boost::winapi::ULONG_>(skip), 24 static_cast<boost::winapi::ULONG_>(max_frames_count), 25 const_cast<boost::winapi::PVOID_*>(out_frames), 26 0 27 ); 28} 29 30 31}}} // namespace boost::stacktrace 32 33#endif // BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP 34