Skip to content

Releases: jeremy-rifkin/cpptrace

Version 0.3.0

22 Nov 07:17
4ec11d0
Compare
Choose a tag to compare

Interface Changes:

  • Overhauled the API for traced cpptrace::exception objects
  • Added cpptrace::isatty utility
  • Added specialized std::terminate handler and cpptrace::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 and CPPTRACE_WRAP_BLOCK utilities to catch non-cpptrace::exceptions and rethrow wrapped in a
    traced exception.
  • Updated cpptrace::stacktrace::to_string to take a bool 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 than dladdr
  • Added column support for dwarf
  • Added inlined call resolution
    • Added cpptrace::stacktrace_frame::is_inline
  • 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

22 Nov 04:46
594dd72
Compare
Choose a tag to compare
v0.3.0-rc2 Pre-release
Pre-release

Pre-release for the next version of cpptrace

v0.3.0-rc1

21 Nov 17:49
27c8878
Compare
Choose a tag to compare
v0.3.0-rc1 Pre-release
Pre-release

Pre-release for the next version of cpptrace

Version 0.2.1

06 Oct 05:03
3143181
Compare
Choose a tag to compare

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

02 Oct 15:38
26ba20a
Compare
Choose a tag to compare

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 a stacktrace 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, and underflow_error.

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

24 Sep 21:34
97de21e
Compare
Choose a tag to compare
Pre-release
Bump tag in README

Pre-release: v0.2.0-beta

20 Sep 14:41
2162463
Compare
Choose a tag to compare
Pre-release
Update readme and bump instructions to v0.2.0-beta

Pre-release: v0.2.0-alpha

19 Sep 00:52
0b32df6
Compare
Choose a tag to compare
Pre-release
Expand cpptrace API (#37)

v0.1.1

28 Aug 21:51
fa1f6d2
Compare
Choose a tag to compare

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

25 Jul 23:32
4b11b87
Compare
Choose a tag to compare

Initial release of the library 🎉