Releases: jeremy-rifkin/cpptrace
Releases · jeremy-rifkin/cpptrace
Version 0.5.2
Fixes:
- Fixed bug with resolution of inlined calls
Other changes:
- Improved internal string formatting
- Improved internal error handling
Version 0.5.1
Fixes:
- Fix MSVC warning treated as error for 32-bit windows
- Fix MSVC issue with min/max macros
- Fix potential null dereference issue identified by eyalgolan1337
Version 0.5.0
New:
- Traces with source code snippets with
cpptrace::stacktrace::print_with_snippets
- Added
cpptrace::get_snippet
utility - Added
cpptrace::can_signal_safe_unwind
utility - Added
stacktrace_frame::get_object_info
Changes:
- The library is now compiled with position-independent code by default
Fixes:
- Fixed issue with
_dl_find_object
implementation
Misc:
- Various refactoring, cleanup, and improvements
Version 0.4.1
Changes:
- Renamed
stacktrace_frame.address
->stacktrace_frame.raw_address
- Added
stacktrace_frame.object_address
- Fixed segfault due to an edge case with dwarf file table indices
- For the libdwarf back-end: At least show object frame information if resolution fails
- Extremely small performance improvements
- Small documentation updates
- Small fix for conan
- Updated cmake to not FetchContent zstd when using CPPTRACE_USE_EXTERNAL_LIBDWARF
- CI improvements
- Test the default configuration first before doing the exhaustive and slow matrix of all configurations.
- Cleanup of duplicated prerequisite installation code
- Cleanup of built and test python scripts
Version 0.4.0
What's new:
- Cpptrace now has a C API! 🎉
- Cpptrace is now able to parse macOS debug maps and resolve stack traces without dSYM files
Most notable improvements:
- Updated cpptrace exception objects to generate traces at the callsite for improved consistency with trace output. As
part fo this cpptrace exception objects have had their constructors updated. - Improved dwarf back-end robustness
- Fallback to the compilation-unit cache or walking compilation-units if aranges lookup fails
- Eliminated reliance on a CMake-generated export header
- Added a configuration to control resolution of inlined function calls
- Made architecture selection in Mach-O universal binaries
Other improvements:
- Improved documentation for installation and usage
- Generally improved README content and organization
- Fixed an MSVC workaround producing dozens of warnings
- Better handle compiler color diagnostic arguments if compiler families differ
- Improvements for handling libdwarf's header placement
- Fixed issue with libunwind resolution
-Werror
is now used in CI- More library configurations are now tested in CI
- Updated to libdwarf 9
- Updated the library's CMake to acquire zstd through FetchContent
- Fixed minor issue with stacktrace printing always trying to enable virtual terminal processing, even when not actually
printing to the terminal.
Version 0.4.0-rc2
v0.4.0-rc2 Small cmake adjustments
Version 0.4.0-rc1
Pre-release for 0.4.0. Hoping to get that out in the next few days.
Version 0.3.1
Tiny patch:
- Fix
CPPTRACE_EXPORT
annotations - Add workaround for msvc bug affecting msvc 19.38.
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