/MIEngine

The Visual Studio MI Debug Engine ("MIEngine") provides an open-source Visual Studio Debugger extension that works with MI-enabled debuggers such as gdb and lldb.

Primary LanguageC#MIT LicenseMIT

Welcome to the Visual Studio MI Debug Engine ("MIEngine")

Build Status

The Visual Studio MI Debug Engine ("MIEngine") provides an open-source Visual Studio extension that enables debugging with debuggers that support the gdb Machine Interface ("MI") specification such as GDB and LLDB.

In Visual Studio Code, MIEngine also powers the 'cppdbg' debug adapter which is part of the C/C++ Extension.

What is MIEngine?

MIEngine is a Visual Studio Debug Engine that understands Machine Interface ("MI"). A Debug Engine is an implementation of the Visual Studio Core Debug Interfaces (IDebug* interfaces), enabling the VS UI to drive debugging. Machine Interface is a text-based protocol developed by GDB that allows a debugger to be used as a separate component of a larger system. Additional information:

This repo also includes:

  • OpenDebugAD7: An adaptation layer between the Debug Adapter Protocol and debug engines. This is what allows MIEngine to be used with Visual Studio Code.
  • SSHDebugPS: A Visual Studio 'Port Supplier' which enables Visual Studio to attach to processes over SSH or Linux Docker and could be easily extended to support any other exe that provides a shell into a Linux container/machine.

Debug Multiple Platforms

  • Support for debugging C/C++ on Android and iOS.
  • Debug on any platform that supports GDB, such as Linux and even Raspberry Pi.

Prerequisites

MIEngine can be built with either Visual Studio or with the .NET CLI.

  • See the wiki for more info.

Contribute!

Before you contribute, please read through the contributing and developer guides to get an idea of requirements for pull requests.

Want to get more familiar with what's going on in the code?

You are also encouraged to start a discussion by filing an issue or creating a gist.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

License

MIEngine is licensed under the MIT License.