From d83e83b9d9ed15e3a0a112b7b9a9d612c7ee8b14 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 5 May 2025 14:51:10 +0200 Subject: Extend profile to support recording analysis errors --- src/buildtool/profile/profile.cpp | 8 ++++++++ src/buildtool/profile/profile.hpp | 3 +++ 2 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/buildtool/profile/profile.cpp b/src/buildtool/profile/profile.cpp index 6e7e8d47..f37629f1 100644 --- a/src/buildtool/profile/profile.cpp +++ b/src/buildtool/profile/profile.cpp @@ -47,6 +47,9 @@ void Profile::Write(int exit_code) { } profile_["exit code"] = exit_code; + if (not analysis_errors_.empty()) { + profile_["analysis errors"] = analysis_errors_; + } std::ofstream os(*output_file_); os << profile_.dump(2) << std::endl; @@ -148,3 +151,8 @@ void Profile::NoteActionCompleted(std::string const& id, } } } + +void Profile::NoteAnalysisError(std::string const& error_message) { + std::unique_lock lock{mutex_}; + analysis_errors_.emplace_back(error_message); +} diff --git a/src/buildtool/profile/profile.hpp b/src/buildtool/profile/profile.hpp index 9067a309..d172ae85 100644 --- a/src/buildtool/profile/profile.hpp +++ b/src/buildtool/profile/profile.hpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "nlohmann/json.hpp" #include "src/buildtool/execution_api/common/execution_response.hpp" @@ -40,6 +41,7 @@ class Profile { void NoteActionCompleted(std::string const& id, IExecutionResponse::Ptr const& response, std::string const& cwd); + void NoteAnalysisError(std::string const& error_message); private: struct ActionData { @@ -54,6 +56,7 @@ class Profile { std::optional output_file_; nlohmann::json profile_; std::unordered_map actions_; + std::vector analysis_errors_; std::mutex mutex_; void SetCLI(CommandLineArguments const& cli); -- cgit v1.2.3