https://github.com/microsoft/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.
https://github.com/microsoft/miengine
Last synced: 7 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/microsoft/miengine
- Owner: microsoft
- License: mit
- Created: 2015-05-28T00:44:08.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2025-04-25T18:43:44.000Z (8 months ago)
- Last Synced: 2025-05-07T23:47:08.869Z (7 months ago)
- Language: C#
- Homepage:
- Size: 11.4 MB
- Stars: 829
- Watchers: 102
- Forks: 222
- Open Issues: 165
-
Metadata Files:
- Readme: README.md
- License: License.txt
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-reverse-engineering - **560**星 - source Visual Studio Debugger extension that works with MI-enabled debuggers such as gdb, lldb, and clrdbg. (<a id="324874bb7c3ead94eae6f1fa1af4fb68"></a>Debug&&调试 / <a id="d22bd989b2fdaeda14b64343b472dfb6"></a>工具)
README
## Welcome to the Visual Studio MI Debug Engine ("MIEngine")
[](https://dev.azure.com/ms/MIEngine/_build/latest?definitionId=98&branchName=main)
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](http://www.gnu.org/software/gdb/) and [LLDB](http://lldb.llvm.org/).
In Visual Studio Code, MIEngine also powers the 'cppdbg' debug adapter which is part of the [C/C++ Extension](https://github.com/microsoft/vscode-cpptools).
### 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)](https://msdn.microsoft.com/en-us/library/bb146305.aspx),
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:
- [Visual Studio Debugger Extensibility](https://msdn.microsoft.com/en-us/library/bb161718.aspx)
- [GDB's Machine Interface](https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html)
This repo also includes:
* [OpenDebugAD7](https://github.com/microsoft/MIEngine/tree/main/src/OpenDebugAD7): An adaptation layer between the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) and debug engines. This is what allows MIEngine to be used with Visual Studio Code.
* [SSHDebugPS](https://github.com/microsoft/MIEngine/tree/main/src/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](http://blogs.msdn.com/b/vcblog/archive/2014/12/12/debug-jni-android-applications-using-visual-c-cross-platform-mobile.aspx) and [iOS](http://blogs.msdn.com/b/vcblog/archive/2015/04/29/debugging-c-code-on-ios-with-visual-studio-2015.aspx).
* Debug on any platform that supports GDB, such as Linux and even [Raspberry Pi](http://blogs.msdn.com/b/vcblog/archive/2015/04/29/debug-c-code-on-linux-from-visual-studio.aspx).
### Prerequisites
MIEngine can be built with either [Visual Studio](https://visualstudio.microsoft.com/downloads/) or with the [.NET CLI](https://dotnet.microsoft.com/download/dotnet).
* See the [wiki](https://github.com/Microsoft/MIEngine/wiki) for more info.
### Contribute!
Before you contribute, please read through the [Contributing Guide](https://github.com/Microsoft/MIEngine/wiki/Contributing-Code) to get an idea of requirements for pull requests.
Want to get more familiar with what's going on in the code?
* [Pull requests](https://github.com/Microsoft/MIEngine/pulls): [Open](https://github.com/Microsoft/MIEngine/pulls?q=is%3Aopen+is%3Apr)/[Closed](https://github.com/Microsoft/MIEngine/pulls?q=is%3Apr+is%3Aclosed)
* [Issues](https://github.com/Microsoft/MIEngine/issues)
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](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
### License
MIEngine is licensed under the [MIT License](https://github.com/Microsoft/MIEngine/blob/main/License.txt).