[lldb-dev] LLDB /w Windows and MinGW64

Eran Ifrah via lldb-dev lldb-dev at lists.llvm.org
Mon Mar 28 08:41:19 PDT 2016


On Mon, Mar 28, 2016 at 6:10 PM, Zachary Turner <zturner at 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 at 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 at 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/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20160328/1b92d195/attachment.html>


More information about the lldb-dev mailing list