<div dir="ltr">Hi Alex,<div><br></div><div>Thanks for the offer!</div><div><br></div><div>If my work is successful, AOSP will end up with an LLDB built from that work.  I'm planning on working upstream for the real work, and I intend to keep patches as bite-sized as possible to reduce latency on upstream approval.  So I think the bulk of the work will be in the top of tree unless something makes that impractical.  We're trying to improve the native debugging experience on Android, and this is going to be one of our investments there.</div>
<div><br></div><div>Regarding the NDK and debugging, there was an OTA upgrade issue to Android 4.3 where the Android device's run-as command (/system/bin/run-as) would lose its setgid/setuid permissions.  This would render gdbserver unable to attach to the device process, making (as you would guess) remote debugging impossible.  One of the first things I did when I joined Google was to add a CTS test to verify run-as works.  This issue was one of the more common issues I saw.  It gets fixed by doing an over-the-USB cable re-imaging if you're on a Nexus device, or whatever your vendor requires for system imaging otherwise.  This should be resolved in 4.4.</div>
<div><br></div><div>Thanks for your interest in this work!</div><div><br></div><div>Sincerely,</div><div>Todd Fiala</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 19, 2013 at 8:09 AM, Alex Weisberger <span dir="ltr"><<a href="mailto:alex.m.weisberger@gmail.com" target="_blank">alex.m.weisberger@gmail.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 Todd,<div><br></div><div>I work on a sizable cross-platform mobile app that uses the Android NDK pretty heavily. I've had very hit or miss experiences debugging with gdb in that environment, so I think this is a great idea. </div>

<div><br></div><div>Have you started a branch for this effort or anything like that? I would be very interested in helping improve the NDK debugging experience in any way. </div><div><br></div><div>Sincerely,</div><div>-Alex Weisberger</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="im">On Mon, Nov 18, 2013 at 11:40 PM, Todd Fiala <span dir="ltr"><<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>></span> wrote:<br>

</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hi all!</span><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">I'm starting up an effort to get LLDB running on Android.  I just wanted to reach out, say hi, and give you an outline of how I'm thinking about attacking this effort.  I'm looking for feedback, so please fire away if you have any suggestions or comments!</div>





<div style="font-family:arial,sans-serif;font-size:13px"><div><br></div><div> I'm thinking of attacking the effort in stages, looking something like this:</div><div><br></div><div>1. Get LLDB up and running against a local Linux x86 process. </div>





<div><br></div><div> It looks like many aspects of this already work.  I've heard there might be some rough edges around core dump support, DWARF 4/5 support, and possibly some optimized debug info support on the clang side, so any work here might touch those areas.</div>





<div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">I see we have what looks like 2 buildbots dedicated to building lldb in linux scenarios:</div><div style="font-family:arial,sans-serif;font-size:13px">





<br></div><div style="font-family:arial,sans-serif;font-size:13px"><a href="http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang" target="_blank">http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang</a></div>




<div style="font-family:arial,sans-serif;font-size:13px">
<a href="http://lab.llvm.org:8011/builders/lldb-x86_64-linux" target="_blank">http://lab.llvm.org:8011/builders/lldb-x86_64-linux</a></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">





Android currently builds linux host tools as 32-bit.  Both of those buildbots above appear to be 64-bit. I'd love to get the equivalent of an Ubuntu 12.04 LTS x64 buildbot building a 32-bit LLDB executable.  How can I go about setting that up?   </div>





<div style="font-family:arial,sans-serif;font-size:13px"><div><br></div><div>2. Get the LLDB remote solution up and running against a remote Linux x86 process.  </div><div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">





Here we get to the first high-level question mark: do we continue to use gdbserver, use debugserver, or base something on lldb-platform?  I haven't dug into this yet.  I've heard some thoughts on this topic, such as (a) LLDB has extended the gdb remote protocol and offers some benefits over using gdbserver, (b) debugserver is currently very part-specific and might be a painful way to go in the short term (but I haven't heard comments on the longer-term potential benefits of toughing through that), and (c) lldb-platform is a reasonable starting point and has been used to get some traction bringing up LLDB on other chipsets.  Like in (1), I'll want to set up a build bot that builds and runs remote tests in this environment.</div>





<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Any thoughts on this?</div><div style="font-family:arial,sans-serif;font-size:13px"><div>
<br></div><div>3. Get the LLDB remote solution up and running against a remote Linux ARM system.<br></div><div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">The idea being that it will be easier for me to poke around on the Linux ARM system than it would be to go straight for the Android device or emulator, but gets me working against an ARM system, one step closer to a typical Nexus device.  And helps out ARM Linux remote support in the process (if there are any weak spots).  I don't know yet what the scope of work here might entail.  Similar to (2), I'll want to set up a build bot that builds and runs remote tests in this environment as well.</div>





<div style="font-family:arial,sans-serif;font-size:13px"><div><img></div></div><div style="font-family:arial,sans-serif;font-size:13px"><div>4. Getting LLDB remote solution up and running against an Android ARM device.</div>



<div><br></div><div>5. Either directly implement or make it straightforward for Android vendors to fill in anything necessary to use our remote solution on other Android hardware.</div>

<div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px"><div>I look forward to working with the LLDB community on this effort!  Suggestions or comments are appreciated.<br></div><div><br></div>
<div>Sincerely,</div><div>Todd Fiala</div></div>
</div>
<br></div></div><div class="im">_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
<br></div></blockquote></div><br></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-397-1352</a></font></td></tr></tbody></table><br></div>
</div>