Added trace::current() methods
This commit is contained in:
parent
a10e27a720
commit
1b0b7a43ea
@ -30,6 +30,7 @@ namespace cpptrace {
|
||||
struct raw_trace {
|
||||
std::vector<uintptr_t> frames;
|
||||
explicit raw_trace(std::vector<uintptr_t>&& frames_) : frames(frames_) {}
|
||||
CPPTRACE_API static raw_trace current(std::uint32_t skip = 0);
|
||||
CPPTRACE_API object_trace resolve_object_trace() const;
|
||||
CPPTRACE_API stacktrace resolve() const;
|
||||
CPPTRACE_API void clear();
|
||||
@ -53,6 +54,7 @@ namespace cpptrace {
|
||||
struct object_trace {
|
||||
std::vector<object_frame> frames;
|
||||
explicit object_trace(std::vector<object_frame>&& frames_) : frames(frames_) {}
|
||||
CPPTRACE_API static object_trace current(std::uint32_t skip = 0);
|
||||
CPPTRACE_API stacktrace resolve() const;
|
||||
CPPTRACE_API void clear();
|
||||
CPPTRACE_API bool empty() const noexcept;
|
||||
@ -89,6 +91,7 @@ namespace cpptrace {
|
||||
std::vector<stacktrace_frame> frames;
|
||||
explicit stacktrace() {}
|
||||
explicit stacktrace(std::vector<stacktrace_frame>&& frames_) : frames(frames_) {}
|
||||
CPPTRACE_API static stacktrace current(std::uint32_t skip = 0);
|
||||
CPPTRACE_API void print() const;
|
||||
CPPTRACE_API void print(std::ostream& stream) const;
|
||||
CPPTRACE_API void print(std::ostream& stream, bool color) const;
|
||||
|
||||
@ -30,6 +30,11 @@ namespace cpptrace {
|
||||
std::atomic_bool absorb_trace_exceptions(true);
|
||||
}
|
||||
|
||||
CPPTRACE_FORCE_NO_INLINE CPPTRACE_API
|
||||
raw_trace raw_trace::current(std::uint32_t skip) {
|
||||
return generate_raw_trace(skip + 1);
|
||||
}
|
||||
|
||||
CPPTRACE_API
|
||||
object_trace raw_trace::resolve_object_trace() const {
|
||||
return object_trace(detail::get_frames_object_info(frames));
|
||||
@ -54,6 +59,11 @@ namespace cpptrace {
|
||||
return frames.empty();
|
||||
}
|
||||
|
||||
CPPTRACE_FORCE_NO_INLINE CPPTRACE_API
|
||||
object_trace object_trace::current(std::uint32_t skip) {
|
||||
return generate_object_trace(skip + 1);
|
||||
}
|
||||
|
||||
CPPTRACE_API
|
||||
stacktrace object_trace::resolve() const {
|
||||
return stacktrace(detail::resolve_frames(frames));
|
||||
@ -99,6 +109,11 @@ namespace cpptrace {
|
||||
return stream;
|
||||
}
|
||||
|
||||
CPPTRACE_FORCE_NO_INLINE CPPTRACE_API
|
||||
stacktrace stacktrace::current(std::uint32_t skip) {
|
||||
return generate_trace(skip + 1);
|
||||
}
|
||||
|
||||
CPPTRACE_API
|
||||
void stacktrace::print() const {
|
||||
print(std::cerr, true);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user