github.com/searKing/golang/go@v1.2.117/os/signal/cgo/include/boost/stacktrace/detail/collect_msvc.ipp (about)

     1  // Copyright Antony Polukhin, 2016-2023.
     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  
    19  namespace boost { namespace stacktrace { namespace detail {
    20  
    21  std::size_t this_thread_frames::collect(native_frame_ptr_t* out_frames, std::size_t max_frames_count, std::size_t skip) 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