On 22/10/2013 14:48, Iain Buclaw wrote:

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.

I know. The point, for me at least, was not weather I could use GCC + MS debuggers or MS compilers + GDB. It was: if you use DMD (64 bit ATM) what debuggers can you use? Can you sucessfully use GDB? If not, could DMD be modified to supported whatever format GDB uses?

> 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.

I think it's DWARF debug information, even for COFF and PE file format. If I run "info source" on a GDC compiled program, I get:
(gdb) info source
Current source file is ../../../gcc-4.6.1/libphobos/rt/dmain.d
Compilation directory is C:\crossdev\gdc\v2\build\i686-pc-mingw32\libphobos
Source language is d.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.

I suspect that what is happening is that by default GCC toolchain stores debug information in the COFF (and PE) file format in a non-standard way - it doesn't use the COFF debug standard but uses DWARF data format instead (DWARF "is independent of object file formats"). And that's why MS tools don't understand that symbolic info, I guess.

Bruno Medeiros - Software Engineer

Reply via email to