<div dir="ltr">Fair enough.  There is even more we can do in case this isn't sufficient (you can see clang if you're curious, but there are various environment variables and registry keys we could look at if we wanted to try *really* hard to find dumpbin).  But it's probably not worth the trouble unless this turns out to be a real problem.</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jan 17, 2017 at 1:14 PM Marcos Pividori <<a href="mailto:mpividori@google.com">mpividori@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">@zturner, yes, it is not well documented. Because of that I propose yo consider `dumpbin` first, and `link <span style="font-size:12.8px" class="gmail_msg"> /dump /disasm</span>` as second option in case we don't find `dumpbin`.</div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Tue, Jan 17, 2017 at 10:00 AM, Zachary Turner <span dir="ltr" class="gmail_msg"><<a href="mailto:zturner@google.com" class="gmail_msg" target="_blank">zturner@google.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">By `link`, do you mean the MSVC  linker?  I didn't know it supported /dump and /disasm options, and when I run link /help I don't see those options listed.</div><div class="m_2947120328993207403HOEnZb gmail_msg"><div class="m_2947120328993207403h5 gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Fri, Jan 13, 2017 at 1:53 PM Marcos Pividori via Phabricator <<a href="mailto:reviews@reviews.llvm.org" class="gmail_msg" target="_blank">reviews@reviews.llvm.org</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">mpividori added inline comments.<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
================<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Comment at: lib/Fuzzer/FuzzerTracePC.cpp:162<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
+      size_t PcOffsetEnd = S.find(':');<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
+      if (PcOffsetEnd == std::string::npos) continue;<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
+      S.resize(PcOffsetEnd);<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
----------------<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
zturner wrote:<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
> Can you put the `continue` on a new line?<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Ok, I will do that. But, in line 169, the continue is in the same line too. Do you want me to update that too?<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
================<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Comment at: lib/Fuzzer/FuzzerUtilWindows.cpp:181<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
+std::string DisassembleCmd(const std::string &FileName) {<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
+  return "dumpbin /disasm " + FileName;<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
+}<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
----------------<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
zturner wrote:<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
> `dumpbin` is not guaranteed to be in the user's path.  Is this going to cause a problem?  Also I believe `dumpbin` will use Intel syntax for the disassembly.  Does objdump use AT&T syntax by default?  If so, will this cause a problem?<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
@zturner you are right. I didn't realize of that since I was using a terminal with the VS environment.<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
We can use :  `link /dump /disasm` , which is included in PATH, but I couldn't find information if the `/dump` option is a new option or it is also included in old versions.<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Also, I think we should consider the case when users only using llvm tools, so in that case we could look for: `llvm-objdump`<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
So, I propose to do this:<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
First: See if `dumpbin` is present in PATH,<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Else: See if `link`  is present in PATH,<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Else: See if `llvm-objdump` is present in PATH,<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Else: Fail<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Would you agree?<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
Repository:<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
  rL LLVM<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<a href="https://reviews.llvm.org/D28635" rel="noreferrer" class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg" target="_blank">https://reviews.llvm.org/D28635</a><br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
<br class="m_2947120328993207403m_7883762344524539890gmail_msg gmail_msg">
</blockquote></div>
</div></div></blockquote></div><br class="gmail_msg"></div>
</blockquote></div>