<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 28, 2016 at 6:10 PM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I'm the main Windows maintainer, </blockquote><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">Hi</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">​</div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">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.<br><br></blockquote><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">​I got it to compile (I have a big patch that I can send you if you are interested)</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">mainly involves blocking code under __MINGW32__ and some updates to the various CMakeLists.txt and AddLLDB.cmake module files</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;display:inline">Some functions are missing in MinGW implementations (like gets_s and others :/)</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;display:inline">​</div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">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 </blockquote><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">​I got lldb-server to compile and run on Windows, however, it crashes immediately and the backtrace shows this:</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline"><br></div></div><div><div class="gmail_default" style="display:inline"><font face="monospace, monospace"><div>0  0x0000000000724615  lldb_private::NativeProcessProtocol::Launch(lldb_private::ProcessLaunchInfo&, lldb_private::NativeProcessProtocol::NativeDelegate&, lldb_private::MainLoopBase&, std::shared_ptr<lldb_private::NativeProcessProtocol>&)    </div><div>1  0x00000000005f815d  lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::LaunchProcess()    </div><div>2  0x00000000004020e5  handle_launch(lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS&, int, char const* const*)    </div><div>3  0x000000000040335e  main_gdbserver(int, char**)    </div><div>4  0x000000000188329c  main    </div><div><br></div></font></div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline"><br></div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">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*)</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">and basically lldb-server calls the main_gdbserver instead of main_platform function</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline"><br></div></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">​Looking at the function that crashes, I see this:</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style=""><font face="monospace, monospace">llvm_unreachable("Platform has no NativeProcessProtocol support");</font><br></div><div class="gmail_default" style=""><font face="verdana, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="verdana, sans-serif">Any ideas?</font></div><div class="gmail_default" style=""><font face="verdana, sans-serif">Thanks!</font></div><div class="gmail_default" style=""><font face="verdana, sans-serif"><br></font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">issues after that as well, since you're the first person afaik to try building with MinGW <br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail_quote"><div><div class="h5"><div dir="ltr">On Sun, Mar 27, 2016 at 10:29 PM Eran Ifrah via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div style="font-family:verdana,sans-serif;font-size:small"><div style="color:rgb(0,0,0)">Hi,</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">I have built LLDB on Windows 7 using MinGW64/4.9.2 (took some effort to get the job done...)</div><div style="color:rgb(0,0,0)">When I tried to debug a simple hello world executable, I get this output:</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0);font-family:arial,sans-serif"><div><font face="monospace, monospace">D:\software\msys-for-clang\1.0\home\PC\build-release-64-lldb\bin>lldb.exe HelloWorld.exe</font></div><div><font face="monospace, monospace">(lldb) target create "HelloWorld.exe"</font></div><div><font face="monospace, monospace">Current executable set to 'HelloWorld.exe' (x86_64).</font></div><div><font face="monospace, monospace">(lldb) b main.cpp:7</font></div><div><font face="monospace, monospace">Breakpoint 1: where = HelloWorld.exe`main + 26 at main.cpp:7, address = 0x000000000040154a</font></div><div><font face="monospace, monospace">(lldb) r</font></div><div><font face="monospace, monospace">error: process launch failed: unable to locate lldb-server</font></div><div><font face="monospace, monospace">(lldb)</font></div></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">I can't seem to locate lldb-server anywhere, and according to LLDBConfig.cmake, this target should not get built on Windows:</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0);font-family:arial,sans-serif"><div><font face="monospace, monospace"># Figure out if lldb could use lldb-server.  If so, then we'll</font></div><div><font face="monospace, monospace"># ensure we build lldb-server when an lldb target is being built.</font></div><div><font face="monospace, monospace">if ((CMAKE_SYSTEM_NAME MATCHES "Darwin") OR</font></div><div><font face="monospace, monospace">    (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") OR</font></div><div><font face="monospace, monospace">    (CMAKE_SYSTEM_NAME MATCHES "Linux") OR</font></div><div><font face="monospace, monospace">    (CMAKE_SYSTEM_NAME MATCHES "NetBSD"))</font></div><div><font face="monospace, monospace">    set(LLDB_CAN_USE_LLDB_SERVER 1)</font></div><div><font face="monospace, monospace">else()</font></div><div><font face="monospace, monospace">    set(LLDB_CAN_USE_LLDB_SERVER 0)</font></div><div><font face="monospace, monospace">endif()</font></div><div style="font-family:verdana,sans-serif"><br></div><div style="font-family:verdana,sans-serif">and in the tools/CMakeLists.txt file we have this:</div><div style="font-family:verdana,sans-serif"><br></div><div><div><font face="monospace, monospace">if (LLDB_CAN_USE_LLDB_SERVER)</font></div><div><font face="monospace, monospace">  add_subdirectory(lldb-server)</font></div><div><font face="monospace, monospace">endif()</font></div><div style="font-family:verdana,sans-serif"><br></div><div style="font-family:verdana,sans-serif"><br></div></div></div><div style="color:rgb(0,0,0)">Any ideas?</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Thanks,</div><div style="margin:2px 0px 0px;color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><div><br></div></div></div>-- <br><div><div dir="ltr"><font face="verdana, sans-serif">Eran Ifrah,<br>Author of <div style="font-family:verdana,sans-serif;font-size:small;display:inline">​CodeLite</div>, a cross platform open source C/C++ IDE: <a href="http://www.codelite.org" target="_blank">http://www.codelite.org</a><br></font><div><font face="verdana, sans-serif">CodeLite IDE Blog: <a href="http://codeliteide.blogspot.com/" target="_blank">http://codeliteide.blogspot.com/</a></font></div></div></div>
</div></div></div>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
</blockquote></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><font face="verdana, sans-serif">Eran Ifrah,<br>Author of codelite, a cross platform open source C/C++ IDE: <a href="http://www.codelite.org" target="_blank">http://www.codelite.org</a><br></font><div><font face="verdana, sans-serif">CodeLite IDE Blog: <a href="http://codeliteide.blogspot.com/" target="_blank">http://codeliteide.blogspot.com/</a></font></div></div></div>
</div></div>