Thread overview
mago-mi: Mago debugger GDB MI compatible interface
May 13, 2016
Vadim Lopatin
May 16, 2016
Vadim Lopatin
May 17, 2016
Vadim Lopatin
May 22, 2016
WebFreak001
May 22, 2016
Vadim Lopatin
May 24, 2016
Vadim Lopatin
May 13, 2016
Hello,

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

My fork of Mago:

https://github.com/buggins/mago

mago-mi project is here:

https://github.com/buggins/mago/tree/master/MagoMI/mago-mi

Once ready, I'm planning to use it in DlangIDE under Windows.
I hope some day it may be used instead of gdb and llvm-mi under Windows by other IDEs which are compatible with GDB MI interface.

Current state: has working command line interface, can run/interrupt/step program.

Work in progress: setting of breakpoints.


Best regards,
    Vadim

May 16, 2016
On Friday, 13 May 2016 at 15:28:55 UTC, Vadim Lopatin wrote:
> Hello,
>
> I'm working on GDB MI compatible interface for Mago debugger.
>
> My fork of Mago:
>
> https://github.com/buggins/mago
>
> mago-mi project is here:
>
> https://github.com/buggins/mago/tree/master/MagoMI/mago-mi
>
> Once ready, I'm planning to use it in DlangIDE under Windows.
> I hope some day it may be used instead of gdb and llvm-mi under Windows by other IDEs which are compatible with GDB MI interface.
>
> Current state: has working command line interface, can run/interrupt/step program.
>
> Work in progress: setting of breakpoints.
>
>
> Best regards,
>     Vadim

Status update: Minimally works with DlangIDE.

With DlangIDE you can set Edit/Preferences/Debugger to mago-mi.
You can run program, set/remove/enable/disable breakpoints, step in/over/out, stop execution.
You can see threads, stack frames.
Viewing of local variables -- in progress.
May 17, 2016
On Monday, 16 May 2016 at 20:49:41 UTC, Vadim Lopatin wrote:
> On Friday, 13 May 2016 at 15:28:55 UTC, Vadim Lopatin wrote:
>> Hello,
>>
>> I'm working on GDB MI compatible interface for Mago debugger.
>>
>> My fork of Mago:
>>
>> https://github.com/buggins/mago
>>
>> mago-mi project is here:
>>
>> https://github.com/buggins/mago/tree/master/MagoMI/mago-mi
>>
>> Once ready, I'm planning to use it in DlangIDE under Windows.
>> I hope some day it may be used instead of gdb and llvm-mi under Windows by other IDEs which are compatible with GDB MI interface.
>>
>> Current state: has working command line interface, can run/interrupt/step program.
>>
>> Work in progress: setting of breakpoints.
>>
>>
>> Best regards,
>>     Vadim
>
> Status update: Minimally works with DlangIDE.
>
> With DlangIDE you can set Edit/Preferences/Debugger to mago-mi.
> You can run program, set/remove/enable/disable breakpoints, step in/over/out, stop execution.
> You can see threads, stack frames.
> Viewing of local variables -- in progress.

Update: local variables display is implemented.
mago-mi now works good with DlangIDE.
If you want to try, prebuilt binaries of DlangIDE + mago-mi + dub can be downloaded here:
https://sourceforge.net/projects/crengine/files/DlangUI/dlangide-v061-magomi-v010-x86.zip/download

Or just use `dub run dlangide`

May 22, 2016
On Friday, 13 May 2016 at 15:28:55 UTC, Vadim Lopatin wrote:
> Hello,
>
> I'm working on GDB MI compatible interface for Mago debugger.

...

> Once ready, I'm planning to use it in DlangIDE under Windows.
> I hope some day it may be used instead of gdb and llvm-mi under Windows by other IDEs which are compatible with GDB MI interface.

Thanks, I will add it to code-debug so Windows users can also debug their D programs in visual studio code.
May 22, 2016
On Sunday, 22 May 2016 at 13:09:56 UTC, WebFreak001 wrote:
> On Friday, 13 May 2016 at 15:28:55 UTC, Vadim Lopatin wrote:
>> Hello,
>>
>> I'm working on GDB MI compatible interface for Mago debugger.
>
> ...
>
>> Once ready, I'm planning to use it in DlangIDE under Windows.
>> I hope some day it may be used instead of gdb and llvm-mi under Windows by other IDEs which are compatible with GDB MI interface.
>
> Thanks, I will add it to code-debug so Windows users can also debug their D programs in visual studio code.

You can try it if VS Code supports gdb-mi interface.
Recent build is available here: https://github.com/buggins/dlangide/releases
With Eclipse/DDT there is some problem - it doesn't see that after setting of breakpoint and running execution is stopped.
Please let me know results of your VS Code try.
May 24, 2016
On Friday, 13 May 2016 at 15:28:55 UTC, Vadim Lopatin wrote:
> Hello,
>
> I'm working on GDB MI compatible interface for Mago debugger.
>
> My fork of Mago:
>
> https://github.com/buggins/mago

mago-mi v0.2.1 is released.

Precompiled binaries are available in DlangIDE release bundle.
https://github.com/buggins/dlangide/releases/tag/v0.6.5

Added support for a lot of GDB/MI commands.
Compatibility with GDB fixed.
Tested with Eclipse/DDT.

You can build dmd/x86 project in Eclipse/DDT, start debugging, use breakpoints, step in/out/over, see threads, stack frames, variables.
Just change Debug Configuration / Debugger setting - from GDB to mago-mi

July 02
On Sunday, 22 May 2016 at 14:30:43 UTC, Vadim Lopatin wrote:
> On Sunday, 22 May 2016 at 13:09:56 UTC, WebFreak001 wrote:
>> On Friday, 13 May 2016 at 15:28:55 UTC, Vadim Lopatin wrote:
>>> [...]
>>
>> ...
>>
>>> [...]
>>
>> Thanks, I will add it to code-debug so Windows users can also debug their D programs in visual studio code.
>
> You can try it if VS Code supports gdb-mi interface.
> Recent build is available here: https://github.com/buggins/dlangide/releases
> With Eclipse/DDT there is some problem - it doesn't see that after setting of breakpoint and running execution is stopped.
> Please let me know results of your VS Code try.

ok I finally added mago-mi to code-debug. Now you can install the extension in visual studio code by typing `ext install Mago` into the Ctrl-P dialog.
July 04
On Saturday, 2 July 2016 at 21:50:13 UTC, WebFreak001 wrote:
> ok I finally added mago-mi to code-debug. Now you can install the extension in visual studio code by typing `ext install Mago` into the Ctrl-P dialog.

Great.

Debug variables are not fully supported yet - it's impossible to expand structs/classes/pointers/arrays so far in mago-mi.
Going to implement it later.