<div dir="ltr">Just to expand a bit on what Tong mentioned:<div><br></div><div>When we're running some of our Android Java code in interpreted mode (as opposed to AOT compiled), we can get multiple interpreter implementation frames (native frames) that correspond to a single user-visible Java frame.  We'd like to enable hiding/collapsing those implementation details of the interpreter into the single user-visible Java frame that they're representing.  For the most part, the folks that will want to really see the interpreter implementation details are the ART developers.  Most of the rest of us just want to see the Java frame.</div>
<div><br></div><div>We'd be happy to put that behavior on a flag when debugging Android mixed Java/C/C++ code.</div><div><br></div><div>Tong's comment about putting it on the 'bt' command is meant to cover:</div>
<div><ul><li>having this functionality translate to API calls that get frames.</li><li>have it be the default way back traces are displayed without requiring users to use some other "back trace-like" command.  (Clearly we could implement this as another command that does the interpretation, but I suspect this would then require clients of the API to know this and call something different than the standard backtrace calls to get it).</li>
</ul><div>A while back, Greg and I chatted about this on lldb-dev and I think we were looking to consider a stack annotation path to handle this, where the change needed for our purposes would be putting the annotations in-line (rather than displayed at the bottom IIRC).  I think the diff now is that we see we have multiple "source" stack frames (the interpreter implementation detail frames) that map to one user-visible frame.  This almost suggests a possible frame-mapping layer where there's an underlying frame model, and a presentation of it that we show to users/API.  But that can also be getting over-complicated.</div>
</div><div><br></div><div>Any thoughts on this would be great since it's deep in your area.  Thanks, Jason!</div><div><br></div><div>-Todd</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 11, 2014 at 4:26 PM, Tong Shen <span dir="ltr"><<a href="mailto:endlessroad@google.com" target="_blank">endlessroad@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 dir="ltr">Hi Jason,<div><br></div><div>For mixed native/Java code (or native/Python code, native/SomeFancyProgrammingLanguage code), sometimes we want a "prettier" stack trace for users.</div>
<div><br></div>
<div>For example, we may want to:</div><div>- skip Java->native wrapper functions, or trampolines that means nothing to users;</div><div>- merge several frames together, because in Java world it's just one stack frame;</div>

<div>- do some language runtime related function calls to get certain runtime data;</div><div>- put an elephant into refrigerator.</div><div><br></div><div>What do you think is the best way to do this?</div><div>If possible, we want to do all these in 'bt' command, so it's more intuitive for users. Or we can extend the stack annotations to do this.</div>

<div>But if they all seem too messy to you, we certainly can keep it out of your way and maybe write a new command for it.</div><div><br></div><div>Thanks in advance!</div><span class="HOEnZb"><font color="#888888"><div>
<div><br></div>-- <br><div dir="ltr">Best Regards, Tong Shen</div>

</div></font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>