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();