<br><br><div class="gmail_quote">On Fri, Aug 24, 2012 at 1:26 PM, Dmitry Vyukov <span dir="ltr"><<a href="mailto:dvyukov@google.com" target="_blank">dvyukov@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><div class="gmail_quote"><div class="im">On Fri, Aug 24, 2012 at 10:44 AM, Alexey Samsonov <span dir="ltr"><<a href="mailto:samsonov@google.com" target="_blank">samsonov@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div>On Thu, Aug 23, 2012 at 3:52 PM, Alexey Samsonov <span dir="ltr"><<a href="mailto:samsonov@google.com" target="_blank">samsonov@google.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
And a follow-up from looking at the output. File/line numbers seem to be fetched correctly, but that isn't always true for function names:<div><div><div><div>if instruction belongs to inlined instance of a function, then we may (and often do) instead return the function it is inlined into.</div>





</div></div></div></blockquote><div><br></div></div><div>It is the correct behavior.</div></div></div></blockquote><div><br></div></div><div>Not quite :) I mean, we output file/line/column of inlined function and function name of function it is inlined into.</div>



<div><div>
<div> </div></div></div></div></blockquote><div><br></div></div><div>Then it's file/line/column that's incorrect.</div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class="gmail_extra"><div class="gmail_quote"><div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div>As a bonus we may also output inlined frames, but by default we must output inlined-into frame.</div>


</div></div></blockquote></div></div></div></blockquote></div></div></div></div></blockquote><div><br></div></div><div>No. If you want to symbolize, say, some random "xor" instruction in the code, you'd want to see the actual place in code where this</div>


<div>xor instruction takes place, not some place where it was inlined, 5 frames upper. This is what addr2line does.</div><div>Anyway, I see it's just time to implement reading information about inlined frames.</div></div>

</blockquote><div><br></div><div><br></div></div><div>I would like to see inlined-into frame. First, it's usually more informative. Second, that's what I will see in objdump/gdb.</div></div></div></blockquote><div>
That's not in the context of the current patch, is it?  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div>
<div class="h5"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class="gmail_quote"><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote">

</div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><div><div><br></div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><div><div> This</div>
<div>should be fixed in DebugInfo library, I'll work on that.</div><div><br></div><div><div><div><div><div><div class="gmail_quote">On Thu, Aug 23, 2012 at 2:30 PM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br>






<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Excellent numbers!<div>addr2line performance and memory usage has been the greatest inconvenience for many users. </div>






<div>Please commit unless there are objections from someone else. <br><div><br></div><div>--kcc <div><div><br><br>
<div class="gmail_quote">On Thu, Aug 23, 2012 at 2:05 PM, Alexey Samsonov <span dir="ltr"><<a href="mailto:samsonov@google.com" target="_blank">samsonov@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">







<div>For the record, I've ran some measurements on Chromium (fetched random instruction addresses from binary and symbolized them with a tool):</div><div><br></div><div>chrome + "-gline-tables-only" (0.5G binary)</div>








<div>tool             # of addresses       time                memory</div><div>addr2line     1                          0m16.803s</div><div><div>symbolizer   1                          0m0.501s</div><div>addr2line     100<span style="white-space:pre-wrap">       </span>                      0m22.474s</div>








<div>symbolizer   100                       0m1.417s</div><div>addr2line     10k                       1m45.055s     2.1G</div><div>symbolizer   10k                       1m23.271s     440 Mb</div><div><br></div><div>chrome + "-g" (2G binary):</div>








<div><div>addr2line     1                          0m36.101s</div><div><div>symbolizer   1                          0m10.101s</div><div>addr2line     100<span style="white-space:pre-wrap">  </span>                      0m46.125s</div>








<div>symbolizer   100                       0m10.005s</div><div>addr2line     10k                       2m32.614s     9.2G </div><div>symbolizer   10k                       1m41.288s     3.9G</div></div></div><div><br></div>








</div><div><div><div><br><div class="gmail_quote">On Tue, Aug 21, 2012 at 7:34 PM, Alexey Samsonov <span dir="ltr"><<a href="mailto:samsonov@google.com" target="_blank">samsonov@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Hi!</div><div><br></div><div>This code contains a stand-alone file that makes use of existing LLVM libraries to symbolize instruction addresses of a module.</div><div>Though it looks like an another llvm tool, we can temporary keep it at //projects/compiler-rt (as currently we're the only interested users,</div>









<div>and we need to compile this tool for the same targets we build ASan/TSan for). This file may be run in a separate process, and</div><div>communicate with caller via stdin/stdout. The key differences from addr2line is that the tool is capable of symbolizing code from</div>









<div>different modules and is able to consult both symbol table and debug info for fetching function name (which would be helpful</div><div>if the binary is compiled with -gline-tables-only).</div><div><br></div><div>Code review: <a href="http://codereview.appspot.com/6465080/" target="_blank">http://codereview.appspot.com/6465080/</a></div>








<span><font color="#888888">
<div><br></div>-- <br><div>Alexey Samsonov, MSK</div><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div>Alexey Samsonov, MSK</div><br>
</font></span></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div>Alexey Samsonov, MSK</div><br>
</font></span></div></div></div></div></div></div>
</blockquote></div></div></div><br></div>
</blockquote></div></div></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div><br>
</font></span></blockquote></div></div></div><br></div>
</blockquote></div></div></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div><br>
</font></span></blockquote></div></div></div><br></div>
</blockquote></div><br>