mago-mi: GDB/MI compatible frontend for Mago debugger

Vadim Lopatin via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue May 17 01:06:16 PDT 2016


Hello,

I'm working on GDB/MI compatible interface for Mago debugger on 
Windows.

GDB/MI is line based machine interface for debugger. IDEs are 
using GDB via this interface.

GDB/MI docs: 
https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html

Project page (mago fork) https://github.com/buggins/mago

Currently mago-mi supports subset of GDB commands enough for 
current DlangIDE functionality.

Tested on DMD generated 32bit executables.

See readme details list of implemented commands: 
https://github.com/buggins/mago/tree/master/MagoMI/mago-mi

Difference from baseline https://github.com/rainers/mago files 
are minimal:
- Static linking for MagoNatDE and MagoNatEE
- Disabled some Mago debug logging

Building mago-mi from source is easy. I've tried MS Visual Studio 
2013 and 2015. Don't forget to edit properties in 
mago/PropSheets. Buld mago-mi project.

Since DlangIDE v0.6.1, it includes prebuilt mago-mi.exe (it will 
be copied into bin directory by dub build) and default Debugger 
settings are changed from gdb to mago-mi by default on Windows. 
If you already used DlangIDE on your computer, check 
Edit/Preferences/Debugger setting - change to "mago-mi" if "gdb" 
is specified.

If you want to try mago-mi and DlangIDE which is using it, you 
can download binaries from 
https://sourceforge.net/projects/crengine/files/DlangUI/dlangide-v061-magomi-v010-x86.zip/download (or just sync to latest dlangide and use `dub run`). Bundle includes DlangIDE, mago-mi, dub, and sample workspaces (helloworld and tetris). Download size is 5.4Mb (seems small enough for IDE+debugger).

I hope my work will be useful for other IDE developers who is 
targeting on Windows.
(Any IDE which uses gdb/mi interface)
I tried gdb and lldb-mi before, but did not managed to find 
working compiler + debugger configuration. (Best combination was 
gdb + gdc, but it was showing global variables instead of locals. 
For lldb-mi, I haven't managed to find compiler which produces 
compatible debug info).

Best regards,
     Vadim


More information about the Digitalmars-d-announce mailing list