[lldb-dev] lldb-gdbserver work

Jean-Daniel Dupas devlists at shadowlab.org
Tue Dec 3 16:27:48 PST 2013


Hello,

I have one question regarding the Native Protocol interface.
Actually if we want to write a "NativeProcess" plugin based on this new protocol, we lack register information required to build a "generic" RegisterContext.

Do you think we should add the following methods to the existing protocols, or have you an other suggestion about how to get the missing information ?

NativeProcessProtocol:
- size_t GetRegisterCount ();
- const RegisterInfo *GetRegisterInfoAtIndex (size_t reg);
- size_t GetRegisterSetCount ();
- const RegisterSet *GetRegisterSet (size_t reg_set);
- uint32_t ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num)
- uint32_t NumSupportedHardwareBreakpoints ();

NativeThreadProtocol:
- InvalidateAllRegisters ()
- bool HardwareSingleStep (bool enable)


Le 2 déc. 2013 à 20:08, Greg Clayton <gclayton at apple.com> a écrit :

> Gotcha. Yes, then on MacOSX, we would be using MachProcess, MachTask, and a bunch of other classes used in debugserver. We will want to remove any custom events that are used in debugserver and replace them with lldb_private::Event objects and use lldb_private::Listener and lldb_private::Broadcaster.
> 
> It might be worth making a copy of MachProcess, MachTask and any other classes from debugserver as they get used in LLDB itself so we can pull out old code that is no longer needed as eventually we will cut over to using these classes in LLDB with all of the LLDB defines and structures as the code will be quite different than the other defines and structures that are currently in debugserver.
> 
> Let me know if you need any help with any of that.
> 
> Greg
> 
> On Dec 2, 2013, at 10:59 AM, Jean-Daniel Dupas <jddupas at gmail.com> wrote:
> 
>> Actually, I'm developing on OS X, and I have a far greater knowledge of the OS X internals than the linux one, so I'd rather work on a Mach process (based on the existing debugserver)
>> 
>> But anyway, I think there is a lot of work that is platform independent, as the dependents parts are already in the existing Processes plugins.
>> 
>> Once we got a first implementation, porting the OS specifics parts from the existing code should be straightforward.
>> 
>> 
>> Le 2 déc. 2013 à 17:48, Greg Clayton <gclayton at apple.com> a écrit :
>> 
>>> None to my currently knowledge.
>>> 
>>> It would be great if you can implement a linux version (I am assuming you want linux support right?) of NativeProcessProtocol and NativeThreadProtocol.
>>> 
>>> They should be backed by the following files:
>>> 
>>> trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp
>>> trunk/source/Plugins/Process/POSIX/*.*
>>> 
>>> Then we can start to implement the remote debugging in GDBRemoteCommunicationClient.
>>> 
>>> Let me know if you need any help.
>>> 
>>> Greg
>>> 
>>> On Nov 28, 2013, at 3:48 AM, Jean-Daniel Dupas <jddupas at gmail.com> wrote:
>>> 
>>>> Hello,
>>>> 
>>>> I'm interested in working on the lldb-gdbserver tool. 
>>>> 
>>>> I'd like to know if there is already someone working on it ? It would not be very effective to duplicate the efforts.
>>>> 
>>>> Thanks
>>>> 
>>>> 
>>>> _______________________________________________
>>>> lldb-dev mailing list
>>>> lldb-dev at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>> 
>>> _______________________________________________
>>> lldb-dev mailing list
>>> lldb-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>> 
> 
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

-- Jean-Daniel








More information about the lldb-dev mailing list