From d6e5bda0858e536c517b1cf85b1e1287ac9646a8 Mon Sep 17 00:00:00 2001 From: jinjiezhao Date: Fri, 5 Jan 2024 11:45:42 +0800 Subject: [PATCH 1/2] Update CMakeLists.txt for better debug info Add -fstandalone-debug to emit full debug info --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f7c14d749..6c4c6cbb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,7 +116,7 @@ message("${BUSTUB_SANITIZER} sanitizer will be enabled in debug mode.") # Compiler flags. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wextra -Werror") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-unused-parameter -Wno-attributes") # TODO: remove -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -fsanitize=${BUSTUB_SANITIZER} -fno-omit-frame-pointer -fno-optimize-sibling-calls") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -fsanitize=${BUSTUB_SANITIZER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fstandalone-debug") set(CMAKE_POSITION_INDEPENDENT_CODE ON) message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") From 16227b6b90f299186226c3afdc6d8a68e27d61fa Mon Sep 17 00:00:00 2001 From: jinjiezhao Date: Sat, 24 Aug 2024 19:32:09 +0800 Subject: [PATCH 2/2] fix: conditionally add -fstandalone-debug for Clang only Previously, the `-fstandalone-debug` flag was added unconditionally, which caused errors when using GCC. This commit adds a check to ensure the flag is only applied when using the Clang compiler, preventing issues with GCC. --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a386c31a7..6f45f96c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,7 +116,10 @@ message("${BUSTUB_SANITIZER} sanitizer will be enabled in debug mode.") # Compiler flags. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wextra -Werror") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-unused-parameter -Wno-attributes") # TODO: remove -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -fsanitize=${BUSTUB_SANITIZER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fstandalone-debug") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -fsanitize=${BUSTUB_SANITIZER} -fno-omit-frame-pointer -fno-optimize-sibling-calls") +if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fstandalone-debug") +endif() set(CMAKE_POSITION_INDEPENDENT_CODE ON) message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")