From 70634cb6f427e3aed5e7c106128de2890ddb1ee7 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Tue, 28 May 2024 21:44:13 -0500 Subject: [PATCH 1/3] Undo temporary change printing object addresses in stack traces --- src/cpptrace.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpptrace.cpp b/src/cpptrace.cpp index e67a868..b32187e 100644 --- a/src/cpptrace.cpp +++ b/src/cpptrace.cpp @@ -166,7 +166,7 @@ namespace cpptrace { if(frame.is_inline) { line += microfmt::format("{<{}}", 2 * sizeof(frame_ptr) + 2, "(inlined)"); } else { - line += microfmt::format("{}0x{>{}:0h}{}", blue, 2 * sizeof(frame_ptr), frame.object_address, reset); + line += microfmt::format("{}0x{>{}:0h}{}", blue, 2 * sizeof(frame_ptr), frame.raw_address, reset); } if(!frame.symbol.empty()) { line += microfmt::format(" in {}{}{}", yellow, frame.symbol, reset); From 1ab65a20408c4bde22d72bb0986ddce10d140d92 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Tue, 28 May 2024 21:55:38 -0500 Subject: [PATCH 2/3] Remove /Wx from msvc outside of a werror build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f8b80d..4b61e10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -246,7 +246,7 @@ set( warning_options $<$>:-Wall -Wextra -Werror=return-type -Wundef> $<$:-Wuseless-cast -Wmaybe-uninitialized> - $<$:/W4 /WX /permissive-> + $<$:/W4 /permissive-> ) if(CPPTRACE_WERROR_BUILD) From 06226ee2aa6a615a63af9d73d69e522c10093dd2 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Tue, 28 May 2024 22:23:48 -0500 Subject: [PATCH 3/3] Bump to 0.6.0 --- CHANGELOG.md | 14 ++++++++++++++ CMakeLists.txt | 2 +- README.md | 14 +++++++------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e748036..5067eda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog - [Changelog](#changelog) +- [v0.6.0](#v060) - [v0.5.4](#v054) - [v0.5.3](#v053) - [v0.5.2](#v052) @@ -15,6 +16,19 @@ - [v0.1.1](#v011) - [v0.1](#v01) +# v0.6.0 + +New: +- Added a `cpptrace::system_error` utility +- Added support for musl https://github.com/jeremy-rifkin/cpptrace/issues/128 +- Added support for split dwarf / debug fission + +Fixes: +- Fixed address formatting in stack traces +- Fixed frame pointer calculation for signal frames from libunwind https://github.com/jeremy-rifkin/cpptrace/issues/123 +- Fixed dwarf_ranges handling of lowpc == pc causing erroneous symbol resolution +- Fixed implementation of the exception helper system/reference implementation's `lazy_trace_holder` + # v0.5.4 Fixes: diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b61e10..6e050b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(package_name "cpptrace") project( cpptrace - VERSION 0.5.4 + VERSION 0.6.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 a3b5c2c..1dec2ac 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ include(FetchContent) FetchContent_Declare( cpptrace GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git - GIT_TAG v0.5.4 # + GIT_TAG v0.6.0 # ) FetchContent_MakeAvailable(cpptrace) target_link_libraries(your_target cpptrace::cpptrace) @@ -596,7 +596,7 @@ include(FetchContent) FetchContent_Declare( cpptrace GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git - GIT_TAG v0.5.4 # + GIT_TAG v0.6.0 # ) FetchContent_MakeAvailable(cpptrace) target_link_libraries(your_target cpptrace::cpptrace) @@ -612,7 +612,7 @@ information. ```sh git clone https://github.com/jeremy-rifkin/cpptrace.git -git checkout v0.5.4 +git checkout v0.6.0 mkdir cpptrace/build cd cpptrace/build cmake .. -DCMAKE_BUILD_TYPE=Release @@ -655,7 +655,7 @@ you when installing new libraries. ```ps1 git clone https://github.com/jeremy-rifkin/cpptrace.git -git checkout v0.5.4 +git checkout v0.6.0 mkdir cpptrace/build cd cpptrace/build cmake .. -DCMAKE_BUILD_TYPE=Release @@ -673,7 +673,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.5.4 +git checkout v0.6.0 mkdir cpptrace/build cd cpptrace/build cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/wherever @@ -756,7 +756,7 @@ make install cd ~/scratch/cpptrace-test git clone https://github.com/jeremy-rifkin/cpptrace.git cd cpptrace -git checkout v0.5.4 +git checkout v0.6.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 @@ -776,7 +776,7 @@ cpptrace and its dependencies. Cpptrace is available through conan at https://conan.io/center/recipes/cpptrace. ``` [requires] -cpptrace/0.5.4 +cpptrace/0.6.0 [generators] CMakeDeps CMakeToolchain