On 24/09/2013 07:16, Rainer Schuetze wrote:
On 23.09.2013 21:50, Bruno Medeiros wrote:
For DMD+Windows, is there only good debugger support with VisualD? :-(
And how well does that work with 32/64 bit platform variations?
Current options that I know of for Windows:
- DMD/Win32+windbg(1996): This is a version of windbg from 1996 with
very basic debugging support and is an embarrassment to be delivered
with dmd.
- DMD/Win32+cv2pdb: cv2pdb allows conversion of the (often no longer
supported) CodeView 4 debug info into pdb files and makes debugging
available by most C/C++ debuggers. This is also used by Visual D when
using the VS debugger. You can see a list features that work or don't
work here: http://dsource.org/projects/cv2pdb/wiki/Features
For non-VS debuggers, most of the visualization extras for displaying
strings, dynamic and associative arrays will not be available.
- DMD/Win32+mago: mago is a debug engine for Visual Studio explicitely
for D. Most notably, it has watch support for D expressions whereas in
other debuggers you usually have to know the C-representation. It can be
used with/without Visual D, but things like the "Auto" window only work
with language support by Visual D.
- DMD/Win64: dmd emits MS compatible debug information so that the
appropriate PDB file is generated during linking and debugging is
possible with most C/C++ debuggers. Debug info is not yet optimal,
mostly because the VS debugger does not like '.' in names. (cv2pdb
defaults to replacing it with '@').
- DMD/Win32+ddbg: ddbg is linked from the web site to
http://ddbg.mainia.de/releases.html but this seems a dead link. Last
time I tried ddbg some years ago it didn't work out too well for me
(maybe it's mostly for D1).
Thanks for the info, that is quite helpful.
Though, it does mean that the path for good debugging support in Windows
for DMD generated executables, without being tied to an specific IDE
(VisualD), doesn't look good.
ddbg looks quite dead. I haven't tried it myself recently but I think I
recall seing some comments for other people as well that it wasn't
working properly anymore with newer D versions, or something.
It might be feasable to adapt mago to be used from another IDE. Can a
command-line interface for it be written? Or is mago too closely tied to
VisualStudio?
How about having DMD generate DWARF info on Windows? Is that feasable?
Is it a lot of work? If DMD does it for Linux, it doesn't seem like it
should be a lot of work to have that done in Windows as well. I guess it
would it would have to use GNU tooling on Windows (Cygwin or MSys), but
that seems quite an acceptable requirement.
(might that adress some Optlink bugs/limitations as well?)
--
Bruno Medeiros - Software Engineer