#ifdef CPPTRACE_UNWIND_WITH_EXECINFO #include "unwind.hpp" #include "common.hpp" #include #include #include #include namespace cpptrace { namespace detail { CPPTRACE_FORCE_NO_INLINE std::vector capture_frames(size_t skip) { std::vector frames(hard_max_frames + skip, nullptr); const int n_frames = backtrace(frames.data(), int(hard_max_frames + skip)); // thread safe frames.resize(n_frames); frames.erase(frames.begin(), frames.begin() + ptrdiff_t(std::min(skip + 1, frames.size()))); frames.shrink_to_fit(); return frames; } } } #endif