diff --git a/CMakeLists.txt b/CMakeLists.txt index c030ae5719d..0f60c7bb479 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,6 +232,8 @@ endif(ENABLE_PEDANTIC_COMPILATION) if(SANITIZE) set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=${SANITIZE}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${SANITIZE}") +# manually disable some optimizations to get better stacktraces if sanitizers are used + set(COMPILER_FLAGS "${COMPILER_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls") endif(SANITIZE) ### Set the final compiler flags. diff --git a/SConstruct b/SConstruct index 8117338c964..b38e8b8a1f9 100755 --- a/SConstruct +++ b/SConstruct @@ -481,7 +481,8 @@ for env in [test_env, client_env, env]: env.AppendUnique(CXXFLAGS = Split("-Wctor-dtor-privacy -Wuseless-cast -Wnoexcept")) if env['sanitize']: env.AppendUnique(CCFLAGS = ["-fsanitize=" + env["sanitize"]], LINKFLAGS = ["-fsanitize=" + env["sanitize"]]) - + env.AppendUnique(CCFLAGS = Split("-fno-omit-frame-pointer -fno-optimize-sibling-calls")) + # # # Determine optimization level # # @@ -494,7 +495,7 @@ for env in [test_env, client_env, env]: else: env["opt"] = "-O0 " else: - env["opt"] = env["opt"]+" " + env["opt"] = env["opt"]+" " # # # Start determining options for debug build