Releases: jeremy-rifkin/cpptrace
Releases · jeremy-rifkin/cpptrace
Version 0.5.3
Fixes:
- Fixed bug with formatting of hex values on MSVC
- Fixed error handling for libbacktrace back-end when debug info is not present
- Fixed bug with cmake resolution of zstd when no zstd cmake config file is installed
Other changes:
- Added error handling for an edge case in the signal tracing demo
- Updated conan recipe to allow libunwind to be chosen
- Improved msvc support in internal formatting system
- Bumped libdwarf to 0.9.2
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_snippetutility - Added
cpptrace::can_signal_safe_unwindutility - Added
stacktrace_frame::get_object_info
Changes:
- The library is now compiled with position-independent code by default
Fixes:
- Fixed issue with
_dl_find_objectimplementation
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
-Werroris 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_EXPORTannotations - Add workaround for msvc bug affecting msvc 19.38.
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