Mono-D 0.5.4.1 - Build, completion & other fixes + Unittests via rdmd

Manu turkeyman at gmail.com
Tue Oct 22 07:39:44 PDT 2013


On 22 October 2013 23:48, Iain Buclaw <ibuclaw at ubuntu.com> wrote:

> On 22 October 2013 13:29, Manu <turkeyman at gmail.com> wrote:
> > On 18 October 2013 21:58, Iain Buclaw <ibuclaw at ubuntu.com> wrote:
> >>
> >> On 18 October 2013 12:43, Bruno Medeiros <brunodomedeiros+dng at gmail.com
> >
> >> wrote:
> >> > On 16/10/2013 22:21, Andrei Alexandrescu wrote:
> >> >>
> >> >> On 10/16/13 5:38 AM, Bruno Medeiros wrote:
> >> >>>
> >> >>> On 08/10/2013 14:18, Alexander Bothe wrote:
> >> >>>>
> >> >>>> Are there any plans/tricks/hacks on how to get programs built
> >> >>>> with dmd debuggable with gdb? Then we also could release the
> >> >>>> addin for Windows as well!
> >> >>>> (Afaik I asked the same question some time ago, but well, perhaps
> >> >>>> something did change over the time :-))
> >> >>>
> >> >>>
> >> >>> I was wondering the same as well... But from the lack of answers I
> >> >>> think
> >> >>> not much can be done? :/
> >> >>
> >> >>
> >> >> What are the matters involved? I did get basic debugging sessions
> >> >> working, but I forgot whether it was dmd or gdc.
> >> >>
> >> >> Andrei
> >> >>
> >> >
> >> > If that was under Windows, it must have been GDC then. The debug
> format
> >> > that
> >> > DMD emits on Windows (OMF for x32 and COFF for x64, if I'm correct) is
> >> > not
> >> > understood by GDB, which I guess only understands DWARF.
> >> >
> >> >
> >>
> >> GCC is able to emit COFF object code - and GDB can read COFF debug
> >> code - though admitedly COFF is a woeful excuse of an object/debug
> >> file format.  :o)
> >
> >
> > DMD for Win64 uses COFF so it's compatible with the windows ecosystem at
> > large (and ideally Win32 will move that way too in the future). Almost
> all
> > dev tools/environments/libraries are distributed as MS-COFF libs.
> >
> > GCC COFF output isn't very useful in the windows context. I tried it. It
> > tried to link, but GCC produces countless intrinsic calls to the gnu
> runtime
> > libs, and they are quite incompatible with the MS CRT. It also seems to
> > populate the COFF objects with DWARF debug info instead of CV8 that
> > VisualC's linker extracts and writes into a PDB file, so you can't debug
> > GDC's COFF output with standard tools.
> >
>
> Incompatibility with MS CRT has nothing to do with COFF. :o)
>

I didn't say that it did.
It's a practical problem. it makes GCC COFF output kinda pointless.

Also, it's not likely DWARF debug information that it emits, as the
> COFF object format defines its own intrinsic symbolic debug format.
> GDB can't read CV8/PDB.
>

Well I can say from experience that GDC built to output COFF was able to
link using the MS linker (although there are loads of problems due to CRT
conflicts), but it didn't see the debug information at all.
So whatever it writes is apparently not recognised by link.exe (mustn't be
VC8?)...

I'm aware GDB can't read CV8/PDB, I'm not sure what your point is?
I was just adding detail to your post about the state of COFF support in
Windows.

If you are using GCC, you'll be using the GCC toolchain.  If you are
> using MSVC, you'll be using the MSVC toolchain.  It's as black and
> white as that.
>

Yes, that's basically the point I was making... and it influences your
choice of D compilers, and tooling, hence Mono-D has a place in Windows
even though it may not support DMD for debugging.

> So if you're not interacting with the MS ecosystem (the de facto standard
> on
> > windows), then you might as well just use elf + dwarf from GCC.
> >
>
> Except that GCC does not emit ELF on windows.  ;-)
>

Really? What is it?
Well whatever object format it is, it seems it's not COFF by default, and
appears it does support DWARF since I've debugged GCC code with GDB before.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-announce/attachments/20131023/c3e54f45/attachment.html>


More information about the Digitalmars-d-announce mailing list