6#ifndef MIMICPP_EXT_STACKTRACE_CPPTRACE_HPP
7#define MIMICPP_EXT_STACKTRACE_CPPTRACE_HPP
12#ifndef MIMICPP_DETAIL_IS_MODULE
13 #if __has_include(<cpptrace/basic.hpp>)
14 #include <cpptrace/basic.hpp>
15 #elif __has_include(<cpptrace/cpptrace.hpp>)
18 #include <cpptrace/cpptrace.hpp>
20 #error "The cpptrace stacktrace backend is explicitly enabled, but the the required include-file can not be found."
29 using type = cpptrace::stacktrace;
38 static Backend current(std::size_t
const skip, std::size_t
const max)
noexcept
40 MIMICPP_ASSERT(skip < std::numeric_limits<std::size_t>::max() - max,
"Skip + max is too high.");
42 return cpptrace::generate_trace(skip + 1, max);
48 MIMICPP_ASSERT(skip < std::numeric_limits<std::size_t>::max(),
"Skip is too high.");
50 return cpptrace::generate_trace(skip + 1);
#define MIMICPP_DETAIL_CONSTEXPR_STRING
Definition Config.hpp:60
#define MIMICPP_DETAIL_CONSTEXPR_VECTOR
Definition Config.hpp:69
#define MIMICPP_ASSERT(condition, msg)
Definition Config.hpp:51
static MIMICPP_DETAIL_CONSTEXPR_STRING std::string source_file(Backend const &stacktrace, std::size_t const at)
Definition cpptrace.hpp:72
static MIMICPP_DETAIL_CONSTEXPR_VECTOR bool empty(Backend const &stacktrace)
Definition cpptrace.hpp:60
static Backend current(std::size_t const skip)
Definition cpptrace.hpp:46
cpptrace::stacktrace Backend
Definition cpptrace.hpp:35
static MIMICPP_DETAIL_CONSTEXPR_STRING std::string description(Backend const &stacktrace, std::size_t const at)
Definition cpptrace.hpp:66
static Backend current(std::size_t const skip, std::size_t const max) noexcept
Definition cpptrace.hpp:38
static MIMICPP_DETAIL_CONSTEXPR_VECTOR cpptrace::stacktrace_frame const & frame(Backend const &stacktrace, std::size_t const at)
Definition cpptrace.hpp:84
static MIMICPP_DETAIL_CONSTEXPR_VECTOR std::size_t size(Backend const &stacktrace)
Definition cpptrace.hpp:54
static MIMICPP_DETAIL_CONSTEXPR_VECTOR std::size_t source_line(Backend const &stacktrace, std::size_t const at)
Definition cpptrace.hpp:78
Trait type for stacktrace backends.
Definition Fwd.hpp:453
Definition Stacktrace.hpp:529
NullBackend type
Definition Stacktrace.hpp:530