Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:52:30

0001 // Copyright Antony Polukhin, 2016-2023.
0002 //
0003 // Distributed under the Boost Software License, Version 1.0. (See
0004 // accompanying file LICENSE_1_0.txt or copy at
0005 // http://www.boost.org/LICENSE_1_0.txt)
0006 
0007 #ifndef BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP
0008 #define BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP
0009 
0010 #include <boost/config.hpp>
0011 #ifdef BOOST_HAS_PRAGMA_ONCE
0012 #   pragma once
0013 #endif
0014 
0015 #include <boost/stacktrace/safe_dump_to.hpp>
0016 
0017 #include <boost/winapi/stack_backtrace.hpp>
0018 
0019 namespace boost { namespace stacktrace { namespace detail {
0020 
0021 std::size_t this_thread_frames::collect(native_frame_ptr_t* out_frames, std::size_t max_frames_count, std::size_t skip) noexcept {
0022     return boost::winapi::RtlCaptureStackBackTrace(
0023         static_cast<boost::winapi::ULONG_>(skip),
0024         static_cast<boost::winapi::ULONG_>(max_frames_count),
0025         const_cast<boost::winapi::PVOID_*>(out_frames),
0026         0
0027     );
0028 }
0029 
0030 
0031 }}} // namespace boost::stacktrace
0032 
0033 #endif // BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP