This is really impressive work.

I gave it a try, compilation worked fine with a few hickups (mainly due to taking some random (almost compatible) stdint.h/inttypes.h and placing it into mago/include, so a few projects needed to have an additional include search path).

Still, I think it is a bit troublesome for people to build MaGo from source if they are not used to work with the Visual Studio Extensibility, so you should consider providing some precompiled binaries.

There is an installation issue with the addin: MagoDELauncher.Addin declares utf-16 encoding, but it looks more like utf-8. Without changing that, Visual Studio 2008 rejects the addin for me.

Integration with Visual D is not working yet. I changed the debugger GUID, it loads the mago debug engine DLLs, but it returns an error. If you can give me a hint where IVsDebugger::LaunchDebugTargets ends up in the engine, I can investigate further...

Trying the Launch addin, the Visual D projects are listed with empty names (I fixed this), but cannot be launched (no OutputGroups from Visual D, I guess I need to fix that, too).

Loading an executable as a project and launching it with the addin works fine, but I had no luck setting breakpoints. Using "asm { int3; }" activates the debugger and shows shows correct source code association. Unfortunately the local variables are listed without name and values, only the icon.

Looking forward to getting these issues resolved,
Rainer


Aldo Nunez wrote:
I've checked in Mago Debugger -- a set of libraries and a Visual Studio plug-in for debugging D 2 programs on Windows.

You can find it at:
  http://dsource.org/projects/mago_debugger

Here's a quick set of features:

  * Starting and stopping a debug session
  * Source level step-in, step-over, and step-out
  * Breakpoints by source line
  * Module and thread views
  * Callstack
  * Memory and Register views
  * Locals view
  * Watch views
  * Disassembly

It uses the CodeView debug info that DMD puts in exes, not the PDB format. But, I do want to support PDB format so that you can step into Microsoft C and C++ code from your D code.

It doesn't have a command line interface, but I encourage you to make one that can be included with this project.

Try it out and take a look at the source code. I'd like to hear your feedback and see your bug reports.

Reply via email to