LLVM Developers Are Bringing LLDB To Windows

Written by Michael Larabel in LLVM on 20 January 2015 at 03:49 PM EST. Add A Comment
LLVM
On Linux there have been developers looking forward to having LLDB mature to become an advanced debugger alternative to GDB while Windows users are now being able to utilize this LLVM debugger as well.

Windows developers already have Microsoft Visual Studio, GDB, WinDBG, and other code debuggers while LLDB is just maturing now into becoming an usable solution. However, for now LLDB on Windows can only debug very simple binaries.

In terms of why Windows developers should look forward to this open-source debugging alternative to Microsoft Visual Studio, "Why not use an existing debugger such as GDB, Visual Studio's, or WinDBG? There are a lot of factors in making this kind of decision. For example, while GDB understands the DWARF debug information produced by Clang on Windows, it doesn't understand the Microsoft C++ ABI or debug information format. On the other hand, neither Visual Studio nor WinDBG understand the DWARF debug information produced by Clang. With LLDB, we can teach it to support both of these formats, making it usable with a wider range of programs. There are also other reasons why we're really excited to work on LLDB for Windows, such as the tight integration with Clang which lets it support all of the same C++ features in its expression parser that Clang supports in your source code. We're also looking to continue adding new functionality to the debugging experience going forward, and having an open source debugger that is part of the larger LLVM project makes this really easy."

This LLVM blog post also went on to explain the current work, "The past few months have been spent porting LLDB's core codebase to Windows. We've been fixing POSIX assumptions, enhancing the OS abstraction layer, and removing platform specific system calls from generic code. Sometimes we have needed to take on significant refactorings to build abstractions where they are necessary to support platform specific differences...This preliminary bootstraping work is mostly complete, and you can use LLDB to debug simple executables generated with Clang on Windows today. Note the use of the word "simple". At last check, approximately 50% of LLDB's tests fail on Windows. Our baseline, however, which is a single 32-bit executable (i.e. no shared libraries), single-threaded application built and linked with Clang and LLD using DWARF debug information, works today."

Basic functionality like setting break points, stopping/continuining at break points, and process inspection while stopped does work. However, there's still needed many other features ranging from debugging crash dumps, debugging 64-bit binaries, remote debugging, better support for debugging multi-threaded applications, Visual Studio integration, etc.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week