On Sep 4, 2012, at 12:38 PM, Carlo Kok <[email protected]> wrote: > Op 4-9-2012 21:35, Carlo Kok schreef: >> Op 4-9-2012 16:46, Greg Clayton schreef: >>> >>> On Sep 3, 2012, at 12:32 PM, Carlo Kok <[email protected]> wrote: >>> >>>> Op 27-8-2012 19:16, Greg Clayton schreef: >>>>> Yes it can, but work is definitely needed. Linux to OSX will work >>>>> because we have the lldb modified "debugserver" binary which can >>>>> debug macosx apps. There is no linux equivalent because the current >>>>> "debugserver" binary was initially made for the Mac only and it isn't >>>>> well orgnanized to be used as a starting point for porting to other >>>>> systems. >>>>> >>>>> What I would like see happen, is in our Host layer (in >>>>> "lldb/source/Host" and "lldb/include/lldb/Host"), we should have a >>>>> native debug API that is very closely based on >>>>> "lldb/tools/debugserver/source/DNB.h" and name it something like >>>>> "lldb_private::NativeDebug". Once we do this, we can then support >>>>> native debugging on every platform by making a new Process plugin in >>>>> "lldb/source/Plugins/Process" called "Host" which would link against >>>>> the new API in the lldb_private::NativeDebug. We then also have >>>>> classes which implement remote GDB debugging inside lldb: >>>>> >>>>> lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp >>>>> lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp >>>>> >>>>> >>>> >>>> >>>> Are there any technical limitations that keep these from working on >>>> windows (the client side of things, not the host)? (I tried to import >>>> it but there are a lot of missing include files which i presume is >>>> just because nobody ever did this and it's just missing defines). >>> >>> We have a host layer in our code that is designed to abstract you from >>> the OS your are running on, though I am sure it is far from perfect. >>> One of the big challenges in making a windows port will be correctly >>> implementing an abstraction layer that makes sense. >>> >>> Does anyone else have any experience and comments for Windows? I seem >>> to remember a few folks working on windows over that past year. >>> >>> Greg Clayton >>> >> >> There are quite a few places that presume unix (like spawn.h, >> pthread.h); the patch attached has some small tweaks for this but is far >> from complete. Atm I'm stuck with regex.h (completely missing on vc++) >> and a read/write lock primitive (readwritelock.h wants it). Win32 >> doesn't seem to have an equivalent. > > Hmm rest got cut off. > > What I wanted to ask here is, is this the right way to go about this? (it's > not a proper patch).
There are two ways that I see: 1 - completely hide everything in the host layer, no unix headers anywhere that isn't in the host code. 2 - require that a posix compliant unix layer is needed. I believe windows has cygwin and a a few other *nix variants that can be installed. As far as the regular expression stuff goes, I believe llvm/clang have a regex implementation built in. We could switch over to using that. Greg Clayton > > > -- > Carlo Kok > _______________________________________________ > lldb-dev mailing list > [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
