Current status of lldb-platform

Hello,

I am wondering if anyone could bring me up to speed on the current status of lldb-platform?
Is there a doc somewhere that describes its design, intended use, etc...
After examining the source there are still many things which are not clear.

My basic understanding is that it should act like a daemon on a target machine, letting a remote host communicate with it to spawn debug servers and transfer files back and forth. Is this correct?

Thanks,
Aidan Dodds

Hi Aidan, sorry for the late reply. Unfortunately no over-arching design
doc exists, but your understanding is generally correct.

The implementation is still somewhat incomplete as lldb-platform relies on
the GDBRemoteCommunication[Server|Client] classes to pass messages back
and forth with the frontend. To get a sense of the design direction, take
a look at docs/lldb-gdb-remote.txt for a more complete list of messages
that LLDB supports in addition to the standard GDB-server protocol.
Although keep in mind only some of these are implemented by lldb-platform.

When lldb-platform is complete, it will implement a superset of the
functionality that is currently provided by the (currently mac-os-x only)
debugserver tool. However, you're right, right now lldb-platform is useful
for transferring files, querying system/OS information, and running
arbitrary shell commands, not debugging things directly.

Hope that helps. Greg may have more information about the lldb-platform
tool as he was involved in it's development, I was only involved in the
commit :slight_smile:

Cheers,
Daniel

Hello,

I am wondering if anyone could bring me up to speed on the current status of lldb-platform?
Is there a doc somewhere that describes its design, intended use, etc...
After examining the source there are still many things which are not clear.

My basic understanding is that it should act like a daemon on a target machine, letting a remote host communicate with it to spawn debug servers and transfer files back and forth. Is this correct?

Yes, the theory is that the "lldb-platform" is started on a remote system, LLDB then connects to it. The platform is able to:
- upload files to the remote host
- download files from the remote host
- run shell commands on the remote system
- maintain a local cache of the remote system root (shared libraries, etc)
- list processes on the remote system
- get detailed info on individual remote processes
- start GDB server binaries on the remote system to allow debugging on the remote system

Most of the above stuff is working for MacOSX.

The larger picture is to be able to have a test suite that runs on a local system through this platform connection but uploading programs, running them remotely.

Greg Clayton