> On Nov 29, 2016, at 10:16 PM, Zachary Turner <ztur...@google.com> wrote:
> 
> What would it take to make it so that local and remote process plugins use 
> the same exact interface?  I mean in theory they're doing the same thing, 
> just on a different machine.  If they shared an identical interface then you 
> could hook the lldb-server up to it and it would work either locally or 
> remotely.
> 
> What was the original motivation for having the api design of remote and 
> local process plugins diverge?

The plan was always do remote so we are always using one thing. We started off 
thinking we wanted to have a native plug-in and a remote GDB server, but when 
we found we didn't have serious performance issues we went the 
lldb-server/debugserver route for everything on our end. lldb-server uses 
NativeProcess and NativeThread as base classes that must be subclassed and we 
would make a ProcessNative plug-in that used the native compiled version of 
these (like lldb-server does), but then we have two code paths to test: native 
and remote. So we either have to run twice the number of tests, one local and 
one remote, so we can make sure native and remote work correctly, or we just go 
one route. What would tend to happen is we would 99.9% of people would do local 
debugging only and all bugs submitted would mostly be bugs with the native 
implementation and remote would suffer and become neglected. GDB had two 
different code paths for these so remote really did suffer and we evolved to 
use remote only on all our systems. Another nice reason for this is you can 
save the GDB remote packet log traffic when you do encounter a bug and see 
exactly what happened when a bug happened. 

So due to history, we started thinking we would need both native and remote 
plug-ins, but we migrated over time to just one solution for simpler testing, 
ensuring remote debugging is rock solid since it is always used for local 
debugging, and for the convenience of being able to completely lop all traffic 
to/from the process with the GDB remote logs.

Greg

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to