On 26.02.2015 11:17, Vadim Lopatin wrote:
On Wednesday, 18 February 2015 at 08:21:19 UTC, Rainer Schuetze wrote:


On 17.02.2015 20:41, Vadim Lopatin wrote:
It looks like we need to develop some universal debugger library.
For linux, it can use gdb as a backend.
For windows - I'm not sure. Is there any console debugger which can
debug dmd generated executables? I've checked windbg shipped with dmd,
but it looks like it is GUI, and cannot be used as backend via console.
Trying to play with my own implementation of debugger using win32 API.

Probably there is already some debugger interface written in D?

On Windows, there is mago (https://github.com/rainers/mago), a debug
engine that integrates with Visual Studio, but it's actually not
limited to that. It might be rather complicated to host it, though,
you'll have to interface with IDebugEngine2 and all its subclasses
(https://msdn.microsoft.com/en-us/library/bb145310.aspx).

If you want a text interface, the Debugging Tools for Windows
(https://msdn.microsoft.com/en-us/windows/hardware/hh852365) also
contain cdb, a command line version of windbg (forget about the one
distributed with dmd). For Win32, you'll have to convert the old
CodeView debug info written by optlink to PDB format using cv2pdb,
though.

Trying to integrate MAGO.
I can easy create instance of MAGO DebugEngine, but having problems with
obtaining of IDebugPort which is needed for invoking of LaunchSuspended.
It looks like to get IDebugPort, I need IDebugCoreServer2 instance.
Does anybody know how to do it?

I suspect that is implemented by the Visual Studio debugger. Have you tried creating an IDebugPortSupplier2?
https://msdn.microsoft.com/en-us/library/bb145819.aspx

It might also only be possible from within Visual Studio, though. To host a debug engine you might have to implement these yourself...

Reply via email to