[libFuzzer] Portably disassemble and find calls to sanitizer_cov_trace_pc_guard.

Instead of directly using objdump, which is not present on Windows, we consider
different tools depending on the platform.
For Windows, we consider dumpbin and llvm-objdump.

Differential Revision: https://reviews.llvm.org/D28635

llvm-svn: 292739
diff --git a/llvm/lib/Fuzzer/FuzzerUtilWindows.cpp b/llvm/lib/Fuzzer/FuzzerUtilWindows.cpp
index 3ca1f2c..b9e039f 100644
--- a/llvm/lib/Fuzzer/FuzzerUtilWindows.cpp
+++ b/llvm/lib/Fuzzer/FuzzerUtilWindows.cpp
@@ -178,6 +178,20 @@
   return NULL;
 }
 
+std::string DisassembleCmd(const std::string &FileName) {
+  if (ExecuteCommand("dumpbin > nul") == 0)
+    return "dumpbin /disasm " + FileName;
+  if (ExecuteCommand("llvm-objdump > nul") == 0)
+    return "llvm-objdump -d " + FileName;
+  Printf("libFuzzer: couldn't find tool to disassemble (dumpbin, "
+      "llvm-objdump)\n");
+  exit(1);
+}
+
+std::string SearchRegexCmd(const std::string &Regex) {
+  return "findstr /r \"" + Regex + "\"";
+}
+
 } // namespace fuzzer
 
 #endif // LIBFUZZER_WINDOWS