---- cut here ----
% cat -n foo.d
1 import std.stdio;
2
3 void main()
4 {
5 *(cast(ubyte*)0) = 0; // intentional SEGV
6 // writefln("hello");
7 }
% dmd -gc foo.d; /usr/bin/gdb --quiet ./foo
(gdb) run
Starting program: /home/miura/work/foo
[Thread debugging using libthread_db enabled]
[New Thread 0xb7dde6f0 (LWP 12300)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7dde6f0 (LWP 12300)]
0x08049239 in _Dmain () at foo.d:5
5 *(cast(ubyte*)0) = 0; // intentional SEGV
(gdb) list
1 import std.stdio;
2
3 void main()
4 {
5 *(cast(ubyte*)0) = 0; // intentional SEGV
6 // writefln("hello");
7 }
(gdb) backtrace
#0 0x08049239 in _Dmain () at foo.d:5
#1 0x08049514 in _D2rt6dmain24mainUiPPaZi7runMainMFZv ()
#2 0x0804931d in _D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv ()
#3 0x08049556 in _D2rt6dmain24mainUiPPaZi6runAllMFZv ()
#4 0x0804931d in _D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv ()
#5 0x080492c8 in main ()
(gdb)
---- cut here ----
Uncomment the line 6, and gdb is now unable to list code:
---- cut here ----
% dmd -gc foo.d; /usr/bin/gdb --quiet ./foo
(gdb) run
Starting program: /home/miura/work/foo
[Thread debugging using libthread_db enabled]
[New Thread 0xb7d696f0 (LWP 12311)]
Dwarf Error: Cannot find DIE at 0x846 referenced from DIE at 0x165 [in module
/home/miura/work/foo]
(gdb) list
1 // Written in the D programming language.
2
3 /**
4 Standard I/O functions that extend $(B std.c.stdio). $(B std.c.stdio)
5 is $(D_PARAM public)ally imported when importing $(B std.stdio).
6
7 Macros:
8 WIKI=Phobos/StdStdio
9
10 Copyright: Copyright Digital Mars 2007 - 2009.
Dwarf Error: Cannot find DIE at 0x846 referenced from DIE at 0x165 [in module
/home/miura/work/foo]
(gdb) backtrace
Dwarf Error: Cannot find DIE at 0x846 referenced from DIE at 0x165 [in module
/home/miura/work/foo]
Dwarf Error: Cannot find DIE at 0x846 referenced from DIE at 0x165 [in module
/home/miura/work/foo]
(gdb)
---- cut here ----
Comment #1 by leandro.lucarella — 2009-10-12T14:28:54Z
I can confirm this using DMD 1.034 and GDB 7.0 with D patches, but here it can never list code. This is the GDB error message:
-----
(gdb) run
Starting program: /tmp/dmd2/linux/bin/bug3368
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault.
0x08049239 in D main ()
Current language: auto
The current source language is "auto; currently asm".
(gdb) list
1 /tmp/cct0i4at.s: No such file or directory.
in /tmp/cct0i4at.s
-----
Comment #2 by leandro.lucarella — 2009-10-12T16:13:41Z
(In reply to comment #1)
> I can confirm this using DMD 1.034 and GDB 7.0 with D patches, but here it can
> never list code. This is the GDB error message:
>
> -----
> (gdb) run
> Starting program: /tmp/dmd2/linux/bin/bug3368
> [Thread debugging using libthread_db enabled]
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x08049239 in D main ()
> Current language: auto
> The current source language is "auto; currently asm".
> (gdb) list
> 1 /tmp/cct0i4at.s: No such file or directory.
> in /tmp/cct0i4at.s
> -----
Please, ignore this. I forgot to add -gc when compiling. I see the exact same problem reported in the original description, using DMD 2.034 and GDB 7.0 patched with D support. DMD 1.049 works fine.
Comment #3 by leandro.lucarella — 2009-10-12T16:21:55Z
Looks like a reincarnation of bug 1079.
*** This issue has been marked as a duplicate of issue 1079 ***