From 586f3242cfdc155c10fd5afb16659587d79016d4 Mon Sep 17 00:00:00 2001 From: feifeifeimoon Date: Wed, 20 Dec 2023 18:22:29 +0800 Subject: [PATCH] [feature](coverage): refresh the coverage file before exiting the program --- be/CMakeLists.txt | 2 +- be/src/service/doris_main.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt index 116c4fd96e057f..d59ee18f8ed93b 100644 --- a/be/CMakeLists.txt +++ b/be/CMakeLists.txt @@ -739,7 +739,7 @@ set(BUILD_SHARED_LIBS OFF) option(ENABLE_CLANG_COVERAGE "coverage option" OFF) if (ENABLE_CLANG_COVERAGE AND ENABLE_CLANG_COVERAGE STREQUAL ON AND COMPILER_CLANG) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-instr-generate -fcoverage-mapping") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-instr-generate -fcoverage-mapping -DLLVM_PROFILE") endif () if (${MAKE_TEST} STREQUAL "ON") diff --git a/be/src/service/doris_main.cpp b/be/src/service/doris_main.cpp index d0c68996b38189..a350f4438aedb1 100644 --- a/be/src/service/doris_main.cpp +++ b/be/src/service/doris_main.cpp @@ -77,6 +77,7 @@ static void help(const char*); extern "C" { void __lsan_do_leak_check(); +int __llvm_profile_write_file(); } namespace doris { @@ -549,7 +550,11 @@ int main(int argc, char** argv) { #endif sleep(10); } - + LOG(INFO) << "Doris main exiting."; +#if defined(LLVM_PROFILE) + __llvm_profile_write_file(); + LOG(INFO) << "Flush profile file."; +#endif doris::TabletSchemaCache::stop_and_join(); http_service.stop(); brpc_service.join();