You can find the documentation at
http://apolukhin.github.io/stacktrace/index.html and the github repo at
https://github.com/apolukhin/stacktrace.
A few quick comments.
1. The library should try to not #include unless necessary.
Constructing a stacktrace object and most of its operations besides
operator<< / to_string do not need and it should be possible to
avoid it. The functionality that needs needs to be defined in a
separate header, for example .
This allows use of the library in header-only mode while still isolating
use into its own source file.
For example, consider throw_with_trace in the documentation; the throw
points, which in a header-only library will be in headers, do not need
and should not drag it in. Only the catch point, which resides
safely in its own source file, does.
Incidentally, safe_dump_win.ipp includes , but does not need to.
2. There should exist a documented way to construct a stacktrace from an
array of void const*. This is currently possible via from_dump, but it's not
guaranteed to work; the format of the dump is technically an implementation
detail of the library and may change.
3. detail::try_demangle is unnecessary, as it does the same thing as
core::demangle. :-)
Apart from that, looks like a substantial improvement. More comments and a
vote possibly coming later.