[lldb-dev] lldb-gdbserver (Linux x86_64) is coming soon!

Todd Fiala todd.fiala at gmail.com
Wed Jun 25 13:41:03 PDT 2014


Hi all,

I'm targeting getting the lldb-gdbserver (llgs) branch upstreamed into the
lldb svn trunk by June 30th 2014 (next Monday).

The current state of the branch:

   - lldb-gdbserver is essentially working for Linux x86_64 targets.
   - Breakpoints, code correlation, backtraces, expression execution in
   inferior memory all work in simple test scenarios.
   - It touches minimal code from the existing branch, although it does
   share a fair amount of code with lldb-platform, particularly in
   GDBRemoteCommunicationServer.
   - lldb-platform for linux x86_64 is not yet implemented.  I'll be doing
   that shortly after upstreaming so we can run the remote test suite against
   lldb and llgs running remotely.
   - I've done some work to support loading elf files for other platforms
   on a given host.  (e.g. command-line MacOSX lldb connecting to Linux x86_64
   llgs somewhat works, as should FreeBSD lldb over to Linux x86_64.)  I added
   off-host elf support for Linux, FreeBSD and NetBSD elf files if they have
   known elf note sections to identify or use the OSABI byte in the elf header
   and are loaded on a system different than the target ABI system.
   - I've added a host of gdb-remote-protocol tests to
   test/tools/lldb-gdbserver.  These run tests against debugserver and llgs.
    I used them to ensure that llgs was behaving identically at the gdb-remote
   protocol level to debugserver.  I upstreamed the vast majority of these
   already - they're marked XFAIL for llgs.  Those are all implemented in the
   llgs branch and passing.

I'm doing a minimal set of tasks to complete the branch to the point of
upstreaming:

   - Removing dead code.  I did borrow a fair amount of code from
   RegisterContext* and the Linux ProcessMonitor, but in some cases there is
   more code there than needed.
   - Run through the FIXME comments to see if anything super egregious
   should be fixed before upstreaming.

If you are interested in testing llgs on a linux_x86_64 host and target,
please have at it.  The llgs branch is located here
<https://github.com/tfiala/lldb/tree/dev-tfiala-native-protocol-linux-x86_64>
on
github. File any issues you hit on the llvm.org bugzilla.  At this point
I'm looking to get it in sooner than later, since more recent activity in
lldb has been causing merging pains and the vast majority of the llgs code
paths don't intersect with local debugging paths (yet).

 I appreciate any and all feedback on it.  After the Linux x86_64 support
is ironed out, I plan to get a few other Linux architectures working, and
(ultimately) getting the Android llgs working so we can debug Android
devices with LLDB.

Thanks!

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


More information about the lldb-dev mailing list