Version 0.3.0
Interface Changes:
- Overhauled the API for traced
cpptrace::exceptionobjects - Added
cpptrace::isattyutility - Added specialized
std::terminatehandler andcpptrace::register_terminate_handlerutility - Added
cpptrace::frame_ptras an alias for the appropriate type capable of representing an instruction pointer - Added signal-safe tracing support and a guide for how to trace safely
- Added
cpptrace::nullable<T>utility for better indicating when line / column information is not present - Added
CPPTRACE_FORCE_NO_INLINEutility macro to cpptrace.hpp - Added
CPPTRACE_WRAPandCPPTRACE_WRAP_BLOCKutilities to catch non-cpptrace::exceptions and rethrow wrapped in a
traced exception. - Updated
cpptrace::stacktrace::to_stringto take abool colorparameter - Eliminated uses of
std::uint_least32_tin favor of other types - Updated
object_framedata member names
Other changes:
- Added object resolution with
_dl_find_objectwhich is much faster thandladdr - Added column support for dwarf
- Added inlined call resolution
- Added
cpptrace::stacktrace_frame::is_inline
- Added
- Added libunwind as a back-end
- Unbundled libdwarf
- Increased hard max frame count, used by some back-end requiring fixed buffers, from 100 to 200
- Improved libgcc unwind backend
- Improved trace output when information is missing
- Added a lookup table for faster dwarf line information lookup
News:
- The library is now on conan and vcpkg
Minor changes:
- Assorted bug fixes
- Various code quality improvements
- CI improvements
- Documentation improvements
- CMake improvements
- Internal refactoring