On Mon, Aug 23, 2010 at 2:57 PM, Jeffrey Yasskin <span dir="ltr"><<a href="mailto:jyasskin@google.com">jyasskin@google.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">
<br>
</div>Do you _only_ attach line information to calls, or also to each other<br>
instruction? </blockquote><div><br></div><div>I only attach line (or more precisely metadata) information to calls.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
If it's only to the calls, do you just not provide line<br>
numbers for the leaf frame? If you do provide line numbers for the<br>
leaf frame, are you worried about providing the wrong number just<br>
after returning from a call?<br></blockquote><div><br></div><div>I don't have leaf frames.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
The line number debug information is generally compressed into a table<br>
of (address, line) pairs, sorted by the address. Then you search the<br>
leaf frame using "std::upper_bound(table, PC)-1".</blockquote><div><br></div><div>The code that looks up the method from the PC is performance sensitive, so using upper_bound is not ideal.</div><div><br></div><div>
Nicolas</div></div>