I was able to locate the problematic code: ProcessWindowsLive::Initialize() was not called due to wrong macros http://reviews.llvm.org/D18520
On Mon, Mar 28, 2016 at 9:31 PM, Eran Ifrah <eran.if...@gmail.com> wrote: > 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/ > -- 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