#ifdef CPPTRACE_UNWIND_WITH_WINAPI #include #include "unwind.hpp" #include "../platform/common.hpp" #include "../platform/utils.hpp" #include #include #include #include // Fucking windows headers #ifdef min #undef min #endif namespace cpptrace { namespace detail { CPPTRACE_FORCE_NO_INLINE std::vector capture_frames(size_t skip, size_t max_depth) { std::vector addrs(std::min(hard_max_frames, max_depth), nullptr); int n_frames = CaptureStackBackTrace( static_cast(skip + 1), static_cast(addrs.size()), addrs.data(), NULL ); std::vector frames(n_frames, 0); for(std::size_t i = 0; i < n_frames; i++) { frames[i] = reinterpret_cast(addrs[i]); } return frames; } } } #endif