From: Marcos Pividori Date: Wed, 1 Feb 2017 17:59:23 +0000 (+0000) Subject: [libFuzzer] Do not use llvm-objdump for disassembling a DSO. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=12cb357da10712c102d1d2af3ce835d5bc471992;p=llvm [libFuzzer] Do not use llvm-objdump for disassembling a DSO. When disassembling a DSO, for calls to functions from the PLT, llvm-objdump only prints the offset from the PLT, like: <.plt+0x30>. While objdump and dumpbin print the function name, like: <__sanitizer_cov_trace_pc_guard@plt> When analyzing the coverage in libFuzzer we dissasemble and look for the calls to __sanitizer_cov_trace_pc_guard. So, this fails when using llvm-objdump on a DSO. Differential Revision: https://reviews.llvm.org/D29372 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293791 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Fuzzer/FuzzerUtilWindows.cpp b/lib/Fuzzer/FuzzerUtilWindows.cpp index 34a17cf305b..7fd09e0ed1b 100644 --- a/lib/Fuzzer/FuzzerUtilWindows.cpp +++ b/lib/Fuzzer/FuzzerUtilWindows.cpp @@ -181,10 +181,7 @@ const void *SearchMemory(const void *Data, size_t DataLen, const void *Patt, std::string DisassembleCmd(const std::string &FileName) { if (ExecuteCommand("dumpbin /summary > 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"); + Printf("libFuzzer: couldn't find tool to disassemble (dumpbin)\n"); exit(1); }