diff --git a/CHANGELOG.md b/CHANGELOG.md index 98abde4..6d63f14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog - [Changelog](#changelog) +- [v0.4.0](#v040) - [v0.3.1](#v031) - [v0.3.0](#v030) - [v0.2.1](#v021) @@ -8,6 +9,35 @@ - [v0.1.1](#v011) - [v0.1](#v01) +# v0.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. + # v0.3.1 Tiny patch: diff --git a/CMakeLists.txt b/CMakeLists.txt index aa4a1e9..e077cf8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(package_name "cpptrace") project( cpptrace - VERSION 0.3.1 + VERSION 0.4.0 DESCRIPTION "Simple, portable, and self-contained stacktrace library for C++11 and newer " HOMEPAGE_URL "https://github.com/jeremy-rifkin/cpptrace" LANGUAGES C CXX diff --git a/README.md b/README.md index cb0b884..892480a 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ include(FetchContent) FetchContent_Declare( cpptrace GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git - GIT_TAG v0.3.1 # + GIT_TAG v0.4.0 # ) FetchContent_MakeAvailable(cpptrace) target_link_libraries(your_target cpptrace::cpptrace) @@ -537,7 +537,7 @@ include(FetchContent) FetchContent_Declare( cpptrace GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git - GIT_TAG v0.3.1 # + GIT_TAG v0.4.0 # ) FetchContent_MakeAvailable(cpptrace) target_link_libraries(your_target cpptrace::cpptrace) @@ -553,7 +553,7 @@ information. ```sh git clone https://github.com/jeremy-rifkin/cpptrace.git -git checkout v0.3.1 +git checkout v0.4.0 mkdir cpptrace/build cd cpptrace/build cmake .. -DCMAKE_BUILD_TYPE=Release @@ -589,7 +589,7 @@ you when installing new libraries. ```ps1 git clone https://github.com/jeremy-rifkin/cpptrace.git -git checkout v0.3.1 +git checkout v0.4.0 mkdir cpptrace/build cd cpptrace/build cmake .. -DCMAKE_BUILD_TYPE=Release @@ -607,7 +607,7 @@ To install just for the local user (or any custom prefix): ```sh git clone https://github.com/jeremy-rifkin/cpptrace.git -git checkout v0.3.1 +git checkout v0.4.0 mkdir cpptrace/build cd cpptrace/build cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/wherever @@ -682,7 +682,7 @@ make install cd ~/scratch/cpptrace-test git clone https://github.com/jeremy-rifkin/cpptrace.git cd cpptrace -git checkout v0.3.1 +git checkout v0.4.0 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=On -DCPPTRACE_USE_EXTERNAL_LIBDWARF=On -DCMAKE_PREFIX_PATH=~/scratch/cpptrace-test/resources -DCMAKE_INSTALL_PREFIX=~/scratch/cpptrace-test/resources @@ -702,7 +702,7 @@ cpptrace and its dependencies. Cpptrace is available through conan at https://conan.io/center/recipes/cpptrace. ``` [requires] -cpptrace/0.3.1 +cpptrace/0.4.0 [generators] CMakeDeps CMakeToolchain