My view: I'd much rather things were done in trunk as per proposal. Makes progress more visible, any issues caught earlier and I think contributions easier done.

Colin

On 04/12/2013 16:56, Todd Fiala wrote:
Going back through the initial proposal here:

http://www.mail-archive.com/[email protected]/msg02164.html

I see the proposal was to do this work in trunk:

> Since the new classes can be implemented without impacting the current functionality, we propose doing this work in trunk. Note that Greg's platform branch was recently merged.

Assuming that is still valid, I could just work in trunk it seems. Sound reasonable?

-Todd



On Wed, Dec 4, 2013 at 8:40 AM, Todd Fiala <[email protected] <mailto:[email protected]>> wrote:

    I'm going to start working on getting lldb-gdbserver working under
    Linux x86_64.

    What's going to be the right submission workflow for this?  Should
    I plan on working in a separate branch until I have something
    working, and then put up a large patch?  I'll be working in git
    locally.  If we have interim work at check points (but not
    generally useful yet), does lldb use some kind of svn branching
    where it might make sense to do checkpoint check-ins?  That would
    allow sharing progress outside of my local group here.

    Thanks!


    On Thu, Nov 21, 2013 at 10:49 AM, Greg Clayton <[email protected]
    <mailto:[email protected]>> wrote:

        Todd,

        I went ahead and created a new "lldb-gdbserver" tool in
        "trunk/tools/lldb-gdbserver" in the repository.

        I also started the Host layer abstraction (see
        include/Host/Debug.h) for processes (NativeProcessProtocol)
        and threads (NativeThreadProtocol).

        In order to get a lldb-gdbserver up and running, it will be a
        matter of adding new packet support to the
        GDBRemoteCommunicationServer class to accept all of the
        standard GDB remote packets used for debugging. The
        GDBRemoteCommunicationServer class currently supports the
        lldb-platform packets, but doesn't implement a lot of the
        normal GDB remote packets.

        So the work flow to get this working on linux will be:
        1 - Implement a linux version NativeProcessProtocol and
        NativeThreadProtocol by having them used the ProcessMonitor
        stuff that is down in the linux native debugger plug-in.
        2 - Implement any needed GDB remote packets in
        GDBRemoteCommunicationServer and back them by a single
        instance of NativeProcessProtocol when launching or attaching
        to a process.

        If you need any help let me know. I am sure there is stuff
        missing from NativeProcessProtocol and NativeThreadProtocol,
        so let me know if you need anything else. Also please ask
        questions as you go if you need any help.

        Greg Clayton


        On Nov 20, 2013, at 4:15 PM, Todd Fiala <[email protected]
        <mailto:[email protected]>> wrote:

        > Perfect, thanks!
        >
        > Technically I'll be using whatever the Android NDK gdbserver
        is - I'll need to track down what (if any) patches are applied
        to that.
        >
        >
        > On Wed, Nov 20, 2013 at 3:56 PM, Greg Clayton
        <[email protected] <mailto:[email protected]>> wrote:
        > If you are going to use a stock gdbserver binary, you will
        need to make a target definition python file. We have a few
        examples checked in:
        >
        > svn cat
        
http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/x86_64_linux_target_definition.py
        > svn cat
        
http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/x86_64_target_definition.py
        >
        > When debugging using GDB, you will first need to see the
        exact registers that the gdbserver supplies:
        >
        > (gdb) maint print raw-registers
        >
        > Then you will need to make a register definition file based
        off of that and point lldb to use it:
        >
        > (lldb) settings set
        plugin.process.gdb-remote.target-definition-file
        /path/to/trunk/examples/python/x86_64_target_definition.py
        >
        > Then LLDB will be able to debug to a remote gdb server that
        doesn't support any of the dynamic register definition packets.
        >
        > Greg
        >
        >
        > On Nov 20, 2013, at 2:50 PM, Todd Fiala <[email protected]
        <mailto:[email protected]>> wrote:
        >
        > > Great, thanks Andy.  Right now I'm just at the point of
        using the stock adb/gdbserver and see what that looks like.
         I'll definitely be looking at your patch in a bit here :-)
        > >
        > >
        > > On Wed, Nov 20, 2013 at 2:39 PM, Kaylor, Andrew
        <[email protected] <mailto:[email protected]>> wrote:
        > > Take a look at the patch I sent you.  It uses an lldb
        platform based on ADB to set up the port forwarding and
        possibly copy files then connects to gdbserver.  The
        implementation is rough, but the basic idea seemed to work
        pretty well.  I was using it to copy over and launch a new
        version of gdbserver because the one that came with the x86
        emulator at the time didn't work.
        > >
        > >
        > >
        > > -Andy
        > >
        > >
        > >
        > > From: [email protected]
        <mailto:[email protected]>
        [mailto:[email protected]
        <mailto:[email protected]>] On Behalf Of Todd Fiala
        > > Sent: Wednesday, November 20, 2013 2:19 PM
        > > To: Greg Clayton
        > > Cc: lldb-dev
        > > Subject: Re: [lldb-dev] LLDB for Android initiative
        > >
        > >
        > >
        > > >
        > > > There is probably some amount of overlap in
        lldb-platform and what we currently do with adb (Android Debug
        Bridge).  Eventually I'll need to figure out what makes sense
        to speed up the compile/deploy/debug/fix cycle.
        > >
        > > You can make a new platform named "remote-andriod" that
        can talk to adb, and just skip using the "lldb-platform"
        binary. Anything that is missing in that we need in the
        lldb_private::Platform class could then be added to adb, and
        if we are missing anything in the lldb_private::Platform
        compared to adb we could add to the platform API. How do you
        communicate with adb? Sockets?
        > >
        > >
        > >
        > > ADB runs on the host/local side, and it knows how to
        forward ports to devices (typically over USB).  So, we talk to
        the local ADB port that then forwards communication to the
        actual device.  I'll need to have a look at the guts of it -
        it might make sense to only use it as a port forwarder and go
        with an lldb-platform on the device side and just stick with
        that.  I'll have a deeper look at that once I get Android
        gdbserver (or equivalent) working.
        > >
        > >
        > >
        > >
        > >
        > >
        > >
        > >
        > > _______________________________________________
        > > lldb-dev mailing list
        > > [email protected] <mailto:[email protected]>
        > > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
        >
        >





_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev


--
Colin Riley

Codeplay Software Ltd
45 York Place, Edinburgh, EH1 3HP
Phone: +44 131 466 0503
Fax: +44 131 557 6600
Website: http://www.codeplay.com
Twitter: @codeplaysoft

This email and any attachments may contain confidential and /or privileged 
information and  is for use  by the addressee only. If you are not the intended 
recipient, please notify Codeplay Software Ltd immediately and delete the 
message from your computer. You may not copy or forward it,or use or disclose 
its contents to any other person. Any views or other information in this 
message which do not relate to our business are not authorized by Codeplay 
software Ltd, nor does this message form part of any contract unless so stated.
As internet communications are capable of data corruption Codeplay Software Ltd 
does not accept any responsibility for any changes made to this message after 
it was sent. Please note that Codeplay Software Ltd does not accept any 
liability or responsibility for viruses and it is your responsibility to scan 
any attachments.
Company registered in England and Wales, number: 04567874
Registered office: 81 Linkfield Street, Redhill RH1 6BY

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to