[Lldb-commits] [PATCH] D133546: [lldb][fuzz] Allow expression fuzzer to be passed as a flag.
Jordan Rupprecht via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Sep 13 15:39:22 PDT 2022
This revision was automatically updated to reflect the committed changes.
rupprecht marked an inline comment as done.
Closed by commit rG4fdda4f82d78: [lldb][fuzz] Allow expression fuzzer to be passed as a flag. (authored by rupprecht).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D133546/new/
https://reviews.llvm.org/D133546
Files:
lldb/tools/lldb-fuzzer/lldb-expression-fuzzer/lldb-expression-fuzzer.cpp
Index: lldb/tools/lldb-fuzzer/lldb-expression-fuzzer/lldb-expression-fuzzer.cpp
===================================================================
--- lldb/tools/lldb-fuzzer/lldb-expression-fuzzer/lldb-expression-fuzzer.cpp
+++ lldb/tools/lldb-fuzzer/lldb-expression-fuzzer/lldb-expression-fuzzer.cpp
@@ -35,7 +35,7 @@
using namespace llvm;
using namespace clang_fuzzer;
-char *target_path;
+const char *target_path = nullptr;
void ReportError(llvm::StringRef message) {
WithColor::error() << message << '\n';
@@ -47,10 +47,24 @@
signal(SIGPIPE, SIG_IGN);
#endif
- target_path = ::getenv("LLDB_FUZZER_TARGET");
+ // `target_path` can be set by either the "--lldb_fuzzer_target" commandline
+ // flag or the "LLDB_FUZZER_TARGET" environment variable. Arbitrarily, we
+ // always do flag parsing and only check the environment variable if the
+ // commandline flag is not set.
+ for (int i = 1; i < *argc; ++i) {
+ auto this_arg = llvm::StringRef((*argv)[i]);
+ WithColor::note() << "argv[" << i << "] = " << this_arg << "\n";
+ if (this_arg.consume_front("--lldb_fuzzer_target="))
+ target_path = this_arg.data();
+ }
+
+ if (!target_path)
+ target_path = ::getenv("LLDB_FUZZER_TARGET");
+
if (!target_path)
- ReportError(
- "no target path specified in with the LLDB_FUZZER_TARGET variable");
+ ReportError("No target path specified. Set one either as an environment "
+ "variable (i.e. LLDB_FUZZER_TARGET=target_path) or pass as a "
+ "command line flag (i.e. --lldb_fuzzer_target=target_path).");
if (!sys::fs::exists(target_path))
ReportError(formatv("target path '{0}' does not exist", target_path).str());
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133546.459904.patch
Type: text/x-patch
Size: 1709 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220913/b0d64e7c/attachment.bin>
More information about the lldb-commits
mailing list