Done. http://reviews.llvm.org/D18519
On Mon, Mar 28, 2016 at 9:28 PM, Zachary Turner <ztur...@google.com> wrote: > Almost, there's one more step. Click Create a New Revision on that > screen, then give it a title and a description. For reviewers put zturner, > and for subscribers put lldb-commits > > On Mon, Mar 28, 2016 at 11:20 AM Eran Ifrah <eran.if...@gmail.com> wrote: > >> Is this what you meant: >> http://reviews.llvm.org/differential/diff/51809/ >> >> Thanks >> >> On Mon, Mar 28, 2016 at 8:58 PM, Zachary Turner <ztur...@google.com> >> wrote: >> >>> For the patch, can you create an account on reviews.llvm.org, and >>> upload your patch there? This makes interactive reviewing / commenting >>> much easier. Let me know if you need help getting that set up. >>> >>> On Mon, Mar 28, 2016 at 10:58 AM Zachary Turner <ztur...@google.com> >>> wrote: >>> >>>> If you compile with MSVC or Clang-cl it wouldn't ask for lldb-server. >>>> So most likely there is some code that is using #if defined(_MSC_VER) when >>>> it should be using #if defined(LLVM_ON_WINDOWS). >>>> >>>> You'll have to hunt that down, but a good starting point might be to >>>> put a breakpoint in ProcessWindowsLive::CreateInstance and then work >>>> backwards to see why that isn't getting called (assuming it's not). >>>> >>>> On Mon, Mar 28, 2016 at 9:05 AM Eran Ifrah <eran.if...@gmail.com> >>>> wrote: >>>> >>>>> On Mon, Mar 28, 2016 at 6:56 PM, Zachary Turner <ztur...@google.com> >>>>> wrote: >>>>> >>>>>> Patches welcome. If you can split it into independent pieces that >>>>>> would be helpful, but it's not always possible. >>>>>> >>>>>> Patch is attached, I think you will find it quite straight forward - >>>>> feel free to comment and send it back for revise >>>>> >>>>> >>>>> >>>>>> The NativeProcessProtocol error, that's the interface that converts >>>>>> debugging events that occur on the inferior into packets that can be sent >>>>>> to the server, and vice versa. Since Windows doesn't currently use lldb >>>>>> server, this piece has never been written for Windows >>>>> >>>>> So this raises the question: how come lldb asks for it? (see my first >>>>> emai inl this conversation) >>>>> I would have build LLDB in debug mode, but it seems that MinGW as.exe >>>>> fails to write some of the files "File too big" >>>>> >>>>> >>>>> >>>>>> >>>>>> On Mon, Mar 28, 2016 at 8:41 AM Eran Ifrah <eran.if...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> On Mon, Mar 28, 2016 at 6:10 PM, Zachary Turner <ztur...@google.com> >>>>>>> wrote: >>>>>>> >>>>>>>> I'm the main Windows maintainer, >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> >>>>>>> >>>>>>>> and while We've gotten things working pretty well on Windows, our >>>>>>>> effort has been 100% on building with msvc and/or clang-cl. Building >>>>>>>> with >>>>>>>> mingw has a different set of pre processor defines and some other >>>>>>>> subtle >>>>>>>> differences, so it doesn't surprise me that things don't work quite >>>>>>>> right. >>>>>>>> >>>>>>>> I got it to compile (I have a big patch that I can send you if you >>>>>>> are interested) >>>>>>> mainly involves blocking code under __MINGW32__ and some updates to >>>>>>> the various CMakeLists.txt and AddLLDB.cmake module files >>>>>>> Some functions are missing in MinGW implementations (like gets_s and >>>>>>> others :/) >>>>>>> >>>>>>> >>>>>>> >>>>>>>> You can try getting lldb-server to build and run under Windows, or >>>>>>>> you can try to get it to use the non lldb server codepath on MinGW, >>>>>>>> but you >>>>>>>> may still run into some >>>>>>> >>>>>>> I got lldb-server to compile and run on Windows, however, it >>>>>>> crashes immediately and the backtrace shows this: >>>>>>> >>>>>>> 0 0x0000000000724615 >>>>>>> >>>>>>> lldb_private::NativeProcessProtocol::Launch(lldb_private::ProcessLaunchInfo&, >>>>>>> lldb_private::NativeProcessProtocol::NativeDelegate&, >>>>>>> lldb_private::MainLoopBase&, >>>>>>> std::shared_ptr<lldb_private::NativeProcessProtocol>&) >>>>>>> 1 0x00000000005f815d >>>>>>> >>>>>>> lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::LaunchProcess() >>>>>>> >>>>>>> 2 0x00000000004020e5 >>>>>>> >>>>>>> handle_launch(lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS&, >>>>>>> int, char const* const*) >>>>>>> 3 0x000000000040335e main_gdbserver(int, char**) >>>>>>> 4 0x000000000188329c main >>>>>>> >>>>>>> >>>>>>> I had to #ifndef __MINGW32__ around lldb-platform.cpp as it contains >>>>>>> too much Linux code that can not be compiled under Windows (fork, exec*) >>>>>>> and basically lldb-server calls the main_gdbserver instead of >>>>>>> main_platform function >>>>>>> >>>>>>> Looking at the function that crashes, I see this: >>>>>>> >>>>>>> llvm_unreachable("Platform has no NativeProcessProtocol support"); >>>>>>> >>>>>>> Any ideas? >>>>>>> Thanks! >>>>>>> >>>>>>> issues after that as well, since you're the first person afaik to >>>>>>>> try building with MinGW >>>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Sun, Mar 27, 2016 at 10:29 PM Eran Ifrah via lldb-dev < >>>>>>>> lldb-dev@lists.llvm.org> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I have built LLDB on Windows 7 using MinGW64/4.9.2 (took some >>>>>>>>> effort to get the job done...) >>>>>>>>> When I tried to debug a simple hello world executable, I get this >>>>>>>>> output: >>>>>>>>> >>>>>>>>> D:\software\msys-for-clang\1.0\home\PC\build-release-64-lldb\bin>lldb.exe >>>>>>>>> HelloWorld.exe >>>>>>>>> (lldb) target create "HelloWorld.exe" >>>>>>>>> Current executable set to 'HelloWorld.exe' (x86_64). >>>>>>>>> (lldb) b main.cpp:7 >>>>>>>>> Breakpoint 1: where = HelloWorld.exe`main + 26 at main.cpp:7, >>>>>>>>> address = 0x000000000040154a >>>>>>>>> (lldb) r >>>>>>>>> error: process launch failed: unable to locate lldb-server >>>>>>>>> (lldb) >>>>>>>>> >>>>>>>>> I can't seem to locate lldb-server anywhere, and according >>>>>>>>> to LLDBConfig.cmake, this target should not get built on Windows: >>>>>>>>> >>>>>>>>> # Figure out if lldb could use lldb-server. If so, then we'll >>>>>>>>> # ensure we build lldb-server when an lldb target is being built. >>>>>>>>> if ((CMAKE_SYSTEM_NAME MATCHES "Darwin") OR >>>>>>>>> (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") OR >>>>>>>>> (CMAKE_SYSTEM_NAME MATCHES "Linux") OR >>>>>>>>> (CMAKE_SYSTEM_NAME MATCHES "NetBSD")) >>>>>>>>> set(LLDB_CAN_USE_LLDB_SERVER 1) >>>>>>>>> else() >>>>>>>>> set(LLDB_CAN_USE_LLDB_SERVER 0) >>>>>>>>> endif() >>>>>>>>> >>>>>>>>> and in the tools/CMakeLists.txt file we have this: >>>>>>>>> >>>>>>>>> if (LLDB_CAN_USE_LLDB_SERVER) >>>>>>>>> add_subdirectory(lldb-server) >>>>>>>>> endif() >>>>>>>>> >>>>>>>>> >>>>>>>>> Any ideas? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Eran Ifrah, >>>>>>>>> Author of >>>>>>>>> CodeLite >>>>>>>>> , a cross platform open source C/C++ IDE: http://www.codelite.org >>>>>>>>> CodeLite IDE Blog: http://codeliteide.blogspot.com/ >>>>>>>>> _______________________________________________ >>>>>>>>> lldb-dev mailing list >>>>>>>>> lldb-dev@lists.llvm.org >>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Eran Ifrah, >>>>>>> Author of codelite, a cross platform open source C/C++ IDE: >>>>>>> http://www.codelite.org >>>>>>> CodeLite IDE Blog: http://codeliteide.blogspot.com/ >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Eran Ifrah, >>>>> Author of codelite, a cross platform open source C/C++ IDE: >>>>> http://www.codelite.org >>>>> CodeLite IDE Blog: http://codeliteide.blogspot.com/ >>>>> >>>> >> >> >> -- >> Eran Ifrah, >> Author of codelite, a cross platform open source C/C++ IDE: >> http://www.codelite.org >> CodeLite IDE Blog: http://codeliteide.blogspot.com/ >> > -- Eran Ifrah, Author of codelite, a cross platform open source C/C++ IDE: http://www.codelite.org CodeLite IDE Blog: http://codeliteide.blogspot.com/
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev