June 12, 2018
Hi,

IntelliJ supports as debugger GDB. Mago, the Visual Studio debugger plugin for D, comes also with an application MagoMI which is a GDB frontend for Mago.
I currently try to get MagoMI running with IntelliJ and face several issues. For these issues I would like to clarify whether there are bugs within MagoMI or bugs within IntelliJ Dlang plugin.

1) IntelliJ calls MagoMi with these commands

C:\D\tools\mago-mi.exe --interpreter=mi2
-break-insert -f C:/D/projects/magotest/source/app.d:6
file C:/D/projects/magotest/magotest.exe
run

First issue is, MagoMi does not know the "file" command but a command "-file-exec-and-symbols". Are these two commands comparable? Which command is correct?

2) Order of calling -break-insert

The breakpoint is only hit if the executable is specified before "-break-insert" is executed. Either by specifying the executable in the first line
"C:\D\tools\mago-mi.exe --interpreter=mi2 C:/D/projects/magotest/magotest.exe"
or by calling command "-file-exec-and-symbols" before calling "-break-insert".
Is this a bug with MagoMI and the order should play no role or is this order important.

3) Level is missing in frame line while breakpoint is hit

When a breakpoint is hit, MagoMI sends this frame line:
{addr="0x00402279",func="D main+0x1d",args=[],file="C:\D\projects\magotest\source\app.d",fullname="C:\D\projects\magotest\source\app.d",line="6",from="C:\D\projects\magotest\magotest.exe"}

IntelliJ throws an error because it expects an attribute "level" in this line. MagoMI has this attribute but does not add it in this specific case (Breakpoint hit). In other cases it adds the level to the frame line:

https://github.com/rainers/mago/search?q=dumpMIFrame&unscoped_q=dumpMIFrame

Is MagoMI right and the level should not be added in this case or is IntelliJ correct and the frame line must be available?

Kind regards
André