Releases: jeremy-rifkin/cpptrace
Releases · jeremy-rifkin/cpptrace
Version 0.3.0
Interface Changes:
- Overhauled the API for traced
cpptrace::exception
objects - Added
cpptrace::isatty
utility - Added specialized
std::terminate
handler andcpptrace::register_terminate_handler
utility - Added
cpptrace::frame_ptr
as 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_INLINE
utility macro to cpptrace.hpp - Added
CPPTRACE_WRAP
andCPPTRACE_WRAP_BLOCK
utilities to catch non-cpptrace::exception
s and rethrow wrapped in a
traced exception. - Updated
cpptrace::stacktrace::to_string
to take abool color
parameter - Eliminated uses of
std::uint_least32_t
in favor of other types - Updated
object_frame
data member names
Other changes:
- Added object resolution with
_dl_find_object
which 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
v0.3.0-rc2
Pre-release for the next version of cpptrace
v0.3.0-rc1
Pre-release for the next version of cpptrace
Version 0.2.1
Patches:
- Fixed uintptr_t implicit conversion issue for msvc
- Better handling for PIC and static linkage in CMake
- Added gcc 5 support
- Various warning fixes
- Added stackwalk64 support for 32-bit x86 mingw/clang and architecture detection
- Added check for stackwalk64 support and CaptureStackBacktrace as a fallback
- Various cmake cleanup and changes to use cpptrace through package managers
- Added sonarlint and implemented some sonarlint fixes
Version 0.2.0
Lots of improvements since 0.1! 🎉
Key changes:
- Added libdwarf as a back-end so cpptrace doesn't have to rely on addr2line or libbacktrace
- Overhauled library's public-facing interface to make the library more useful
- Added
raw_trace
interface - Added
object_trace
interface - Added
stacktrace
interface - Updated
generate_trace
to return astacktrace
rather than a vector of frames - Added
generate_trace
counterparts for raw and object traces - Added
generate_trace
overloads with max_depth - Added interface for internal demangling utility
- Added cache mode configuration
- Added option to absorb internal trace exceptions (by default it absorbs)
- Added
cpptrace::exception
, which automatically generates and stores a stacktrace when thrown - Added
exception_with_message
- Added traced analogs for stdexcept errors:
logic_error
,domain_error
,invalid_argument
,length_error
,
out_of_range
,runtime_error
,range_error
,overflow_error
, andunderflow_error
.
- Added
Other changes:
- Bundled libdwarf with cpptrace so the library can essentially be self-contained and not have to rely on libraries that
might not already be on a system - Added StackWalk64 as an unwinding back-end on windows
- Added system for multiple symbol back-ends to be used, mainly for more complete stack traces on mingw
- Fixed sporadic line number reporting errors due to not adjusting the program counter from the unwinder
- Improved addr2line/atos invocation back-end on macos
- Lots of error handling improvements
- Performance improvements
- Updated default back-ends for most systems
- Removed full tracing backends
- Cleaned up library cmake
- Lots of internal cleanup and refactoring
- Improved library usage instructions in README
Pre-release: v0.2.0-beta2
Bump tag in README
Pre-release: v0.2.0-beta
Update readme and bump instructions to v0.2.0-beta
Pre-release: v0.2.0-alpha
Expand cpptrace API (#37)
v0.1.1
Small patch:
- Handle errors when object files don't exist or can't be opened for reading
- Handle paths with spaces when using addr2line on windows
Version 0.1
Initial release of the library 🎉