clayborg added a comment. In D63165#1540606 <https://reviews.llvm.org/D63165#1540606>, @Hui wrote:
> > In D63165#1539118 <https://reviews.llvm.org/D63165#1539118>, @amccarth > > wrote: > > > >> Sorry for the stupid question, but ... > >> > >> What exactly is meant here by "Native"? How is a NativeProcessWindows > >> different from ProcessWindows? > > > > > > The Native*** classes are meant to be used from lldb-server. They look > > somewhat similar to their non-native counterpart because they still do > > debugging, but they're a lot dumber, because they only deal with basic > > process control, and none of the fancy symbolic stuff that you'd need debug > > info for. > > They differ in APIs but most of them have common implementations. The APIs > from native process classes are more easy to apply process/thread control. > Hope the native and non-native ones can be merged. The similar thing to the > RegisterContext and NativeRegisterContext classes. > > The other thing is that using "native" classes can avoid linking a lot of > unnecessary lldb libs (LLDB plugins or whatever comes with the plugins) to > lldb-server. > The nativeprocesswindows could just be a pass-through to processwindows > plugin, but the usage is a sort of strange since the > lldb-server needs to initialize the plugin, create a target, and create a > instance just like what lldb does. This means literally > there will be two lldb debuggers, one on host and the other one on remote. > It is doable, but not that applicable. So the idea is ProcessWindows will be deleted once lldb-server supports windows debugging. A bit of history here: when we first started we started making ProcessXXXX for each platform (mac, linux, windows). Then we thought about remote debugging and decided to have everyone just make a lldb-server for their platform and even when we are locally debugging, we launch a lldb-server. This is how linux, macOS, the BSDs and other targets do it. Why? Because if you do it the other way you have more code to support: one native plug-in and one remote plug-in. This means the remote debugging usually has more issues since it is the less tested debugging scenario. It also means that if you had a native process implementation only, like ProcessWindows is currently, you can't remotely debug to a windows machine. So yes there is duplicated code for now, but ProcessWindows.cpp and ThreadWindows.cpp should go away in the near future once lldb-server takes over so the temporary code duplication is just to keep things working until lldb-server takes over. Repository: rLLDB LLDB CHANGES SINCE LAST ACTION https://reviews.llvm.org/D63165/new/ https://reviews.llvm.org/D63165 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits