diff options
Diffstat (limited to 'boost/stacktrace/detail/collect_msvc.ipp')
-rw-r--r-- | boost/stacktrace/detail/collect_msvc.ipp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/boost/stacktrace/detail/collect_msvc.ipp b/boost/stacktrace/detail/collect_msvc.ipp new file mode 100644 index 0000000000..d75df558f3 --- /dev/null +++ b/boost/stacktrace/detail/collect_msvc.ipp @@ -0,0 +1,33 @@ +// Copyright Antony Polukhin, 2016-2017. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP +#define BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP + +#include <boost/config.hpp> +#ifdef BOOST_HAS_PRAGMA_ONCE +# pragma once +#endif + +#include <boost/stacktrace/safe_dump_to.hpp> + +#include <boost/detail/winapi/stack_backtrace.hpp> + +namespace boost { namespace stacktrace { namespace detail { + +std::size_t this_thread_frames::collect(native_frame_ptr_t* out_frames, std::size_t max_frames_count, std::size_t skip) BOOST_NOEXCEPT { + return boost::detail::winapi::RtlCaptureStackBackTrace( + static_cast<boost::detail::winapi::ULONG_>(skip), + static_cast<boost::detail::winapi::ULONG_>(max_frames_count), + const_cast<boost::detail::winapi::PVOID_*>(out_frames), + 0 + ); +} + + +}}} // namespace boost::stacktrace + +#endif // BOOST_STACKTRACE_DETAIL_COLLECT_MSVC_IPP |