<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 18, 2014 at 4:59 PM, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com" target="_blank">grosbach@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="h5"><div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra">
<div class="gmail_quote"><div>It's not just sanitizers that need to be able to get fast, accurate stack traces.  Consider sampling profilers that capture call stacks.  Using the unwind tables is disruptively slow to the process under profile.</div>

</div></div></div>
</div></blockquote></div><br></div></div><div>Why not do the unwind table parsing after the fact? Especially for a profiler, there’s no reason to do that during the actual profile collection.</div></div></blockquote></div>
<br></div><div class="gmail_extra">I'm not sure how that would work, without memcpy-ing the entire stack.  If you don't have frame pointers you can't walk upwards to find the return addresses to save, at least not without... looking at the unwind tables.  :)</div>
</div>