On Saturday, 28 February 2015 at 08:06:59 UTC, Rainer Schuetze
wrote:
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...
To create IDebugPortSupplier2, I need at least GUID for class
implementing it.