Open Sourcing Visual Studio’s GDB/LLDB Debug Engine

You will have seen by now that we have added support for debugging C++ on Android and debugging C++ on iOS debugging C++ on iOS from Visual Studio 2015. As part of this work, we have developed a Visual Studio debug engine that is capable of communicating with both GDB and LLDB from Visual Studio. Today we’re happy to announce that we plan to release the source code for this engine as an open source project. While the code is not publicly available today, we thought we’d anticipate and answer some questions that this announcement may generate.

What does this debug engine enable?
We have done the work to enable the debug engine to work with the version of GDB that ships with the Android NDK API level 17 and above, and the version of LLDB that we ship to support iOS debugging. By releasing the project open source, it should be relatively easy to adapt the code to work correctly with your other GDB and LLDB targets from Visual Studio. For example, see Marc Goodner’s post on how to make use of this engine to remote debug from Visual Studio to Linux using Visual Studio 2015 RC.

How does it work with both GDB and LLDB?
The debug engine uses the GDB Machine Interface (MI) to communicate with GDB and the LLDB MI (in development according to GDB MI specification) to communicate with LLDB. We are in the processing of making contributions back to the LLDB project to add functionality to the LLDB MI layer so it functions on parity with the GDB MI layer.

What license will the source code be released under?
We plan to release it under the MIT open source license.

Where will you be publishing the source?
We will be publishing the source on GitHub.

Will you be taking contributions from the community?
Yes, we plan to accept contributions to the project.

 

When will you be releasing the source code?
We will be releasing the source code by the time we release the RTM version of Visual Studio 2015.

We are excited to enable you to debug using Visual Studio anywhere you can use GDB or LLDB. Stay tuned and we’ll let you know as soon as the source is available and how you can contribute.