[lldb-dev] LLDB for Android initiative

Todd Fiala tfiala at google.com
Mon Nov 18 20:40:31 PST 2013


Hi all!

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!

 I'm thinking of attacking the effort in stages, looking something like
this:

1. Get LLDB up and running against a local Linux x86 process.

 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.

I see we have what looks like 2 buildbots dedicated to building lldb in
linux scenarios:

http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang
 http://lab.llvm.org:8011/builders/lldb-x86_64-linux

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?

2. Get the LLDB remote solution up and running against a remote Linux x86
process.

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.

Any thoughts on this?

3. Get the LLDB remote solution up and running against a remote Linux ARM
system.

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.
4. Getting LLDB remote solution up and running against an Android ARM
device.

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.

I look forward to working with the LLDB community on this effort!
 Suggestions or comments are appreciated.

Sincerely,
Todd Fiala
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20131118/615b6f82/attachment.html>


More information about the lldb-dev mailing list