[compiler-rt] Add -log_file flag (PR #67043)
Yakov Olkhovskiy via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 21 10:25:33 PDT 2023
https://github.com/yakov-olkhovskiy created https://github.com/llvm/llvm-project/pull/67043
It would be nice to have fuzzer's output separated from module's output, so "-log_file" flag is introduced to allow to reroute fuzzer's output to the specified file.
>From 3119a16202297b2e7fbe31407bfd72882df3892a Mon Sep 17 00:00:00 2001
From: Yakov Olkhovskiy <yakov at clickhouse.com>
Date: Thu, 21 Sep 2023 17:19:48 +0000
Subject: [PATCH] add -log_file flag
---
compiler-rt/lib/fuzzer/FuzzerDriver.cpp | 11 +++++++++++
compiler-rt/lib/fuzzer/FuzzerFlags.def | 1 +
2 files changed, 12 insertions(+)
diff --git a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp
index 8674d788932f847..2c6745bfa0f72f6 100644
--- a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp
@@ -663,6 +663,17 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {
return 0;
}
+ std::unique_ptr<FILE, int(*)(FILE*)> log_file(0, &fclose);
+ if (Flags.log_file) {
+ FILE * f = fopen(Flags.log_file, "w");
+ if (!f) {
+ Printf("ERROR: unable to open log_file [%s]: %s\n", Flags.log_file, strerror(errno));
+ return 1;
+ }
+ log_file.reset(f);
+ SetOutputFile(f);
+ }
+
if (Flags.close_fd_mask & 2)
DupAndCloseStderr();
if (Flags.close_fd_mask & 1)
diff --git a/compiler-rt/lib/fuzzer/FuzzerFlags.def b/compiler-rt/lib/fuzzer/FuzzerFlags.def
index fc3b3aa8c98ad5e..3c435e3d3109664 100644
--- a/compiler-rt/lib/fuzzer/FuzzerFlags.def
+++ b/compiler-rt/lib/fuzzer/FuzzerFlags.def
@@ -209,3 +209,4 @@ FUZZER_FLAG_STRING(collect_data_flow,
FUZZER_FLAG_INT(create_missing_dirs, 0, "Automatically attempt to create "
"directories for arguments that would normally expect them to already "
"exist (i.e. artifact_prefix, exact_artifact_path, features_dir, corpus)")
+FUZZER_FLAG_STRING(log_file, "Output file for fuzzer, default is stderr")
More information about the llvm-commits
mailing list