diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8dd75c6809372cf1d3b3285e6083f89de2f2dfd..7b7f7a1f30eb015b23d23c7f299ab585726ee54f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,9 +2,14 @@ project(MemoryProcessing)
 cmake_minimum_required(VERSION 3.19)
 
 option(INCLUDE_CUDA "GPU build in mode" OFF)
+option(CXX23_STACKTRACE "Enable C++23 stacktrace" OFF)
 
 enable_language(CXX)
-set(CMAKE_CXX_STANDARD 11)
+if(CXX23_STACKTRACE)
+    set(CMAKE_CXX_STANDARD 23)
+else(CXX23_STACKTRACE)
+    set(CMAKE_CXX_STANDARD 11)
+endif(CXX23_STACKTRACE)
 
 message(STATUS "memory processing: GPU build in mode is ${INCLUDE_CUDA}")
 
@@ -34,4 +39,7 @@ endif(INCLUDE_CUDA)
 set(SOURCES ${SOURCES_CU} ${SOURCES_CXX})
 set(HEADERS ${HEADERS_CU} ${HEADERS_CXX})
 
-add_library(memproc STATIC ${HEADERS} ${SOURCES})
\ No newline at end of file
+add_library(memproc STATIC ${HEADERS} ${SOURCES})
+if(CXX23_STACKTRACE)
+    target_link_libraries(memproc PUBLIC -lstdc++_libbacktrace)
+endif(CXX23_STACKTRACE)
\ No newline at end of file