From f3dfadddfa5328e9c3315a0e9b35409380be7d59 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 26 Jul 2024 07:54:29 -0500 Subject: [PATCH] added cpptrace --- .cspell/words.txt | 1 + docker/aarch64/alpine | 1 + docker/x86_64/alpine | 1 + project.cmake | 19 +++++++++++++++++++ repertory/repertory/main.cpp | 5 +++++ 5 files changed, 27 insertions(+) diff --git a/.cspell/words.txt b/.cspell/words.txt index ceaa55b2..eddb303f 100644 --- a/.cspell/words.txt +++ b/.cspell/words.txt @@ -16,6 +16,7 @@ cppcoreguidelines cppdbg cppflags cpphttplib +cpptrace cppvsdbg cstdint cxxflags diff --git a/docker/aarch64/alpine b/docker/aarch64/alpine index 446a66af..62031086 100644 --- a/docker/aarch64/alpine +++ b/docker/aarch64/alpine @@ -14,6 +14,7 @@ RUN apk add \ bzip2-static \ cmake \ diffutils \ + elfutils-dev \ fontconfig-dev \ fontconfig-static \ freetype \ diff --git a/docker/x86_64/alpine b/docker/x86_64/alpine index e8d31bc4..f3c65738 100644 --- a/docker/x86_64/alpine +++ b/docker/x86_64/alpine @@ -14,6 +14,7 @@ RUN apk add \ bzip2-static \ cmake \ diffutils \ + elfutils-dev \ fontconfig-dev \ fontconfig-static \ freetype \ diff --git a/project.cmake b/project.cmake index a89eada3..c778337a 100644 --- a/project.cmake +++ b/project.cmake @@ -1,3 +1,22 @@ +include(FetchContent) +FetchContent_Declare( + cpptrace + GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git + GIT_TAG v0.6.3 +) +FetchContent_MakeAvailable(cpptrace) +link_libraries(cpptrace::cpptrace) + +if(WIN32) + add_custom_command( + TARGET ${PROJECT_NAME} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ + $ + ) +endif() + set(CMAKE_CXX_FLAGS "-include common.hpp ${CMAKE_CXX_FLAGS}") add_project_library(lib${PROJECT_NAME} "" "" "${PROJECT_ADDITIONAL_SOURCES}") diff --git a/repertory/repertory/main.cpp b/repertory/repertory/main.cpp index ce35c1db..46f7f60a 100644 --- a/repertory/repertory/main.cpp +++ b/repertory/repertory/main.cpp @@ -19,6 +19,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#include "cpptrace/cpptrace.hpp" + #include "cli/actions.hpp" #include "initialize.hpp" #include "types/repertory.hpp" @@ -28,6 +30,9 @@ using namespace repertory; auto main(int argc, char **argv) -> int { + cpptrace::register_terminate_handler(); + cpptrace::generate_trace().print(); + if (not repertory::project_initialize()) { return -1; }