I can't print static arrays in LDC:
luca@homero:/tmp$ cat -n dbg.d
1
2 void main()
3 {
4 int[2] int_sarray;
5 int_sarray[0] = 1;
6 int_sarray[1] = -1;
7 }
8
luca@homero:/tmp$ ldc -gc dbg.d
luca@homero:/tmp$ gdb --quiet ./dbg
Reading symbols from /tmp/dbg...done.
(gdb) break Dmain
Breakpoint 1 at 0x80495e6: file dbg.d, line 5.
(gdb) run
Starting program: /tmp/dbg
[Thread debugging using libthread_db enabled]
Breakpoint 1, _Dmain () at dbg.d:5
5 int_sarray[0] = 1;
(gdb) print int_sarray
No symbol "int_sarray" in current context.
(gdb)
DMD 1.x (svn rev 215) can do it (but can't print dynamic arrays while LDC can):
luca@homero:/tmp$ dmd -gc dbg.d
luca@homero:/tmp$ gdb --quiet ./dbg
Reading symbols from /tmp/dbg...done.
(gdb) break Dmain
Breakpoint 1 at 0x8049b9a: file dbg.d, line 2.
(gdb) run
Starting program: /tmp/dbg
[Thread debugging using libthread_db enabled]
Breakpoint 1, _Dmain () at dbg.d:4
4 int[2] int_sarray;
Current language: auto
The current source language is "auto; currently d".
(gdb) n
5 int_sarray[0] = 1;
(gdb) n
6 int_sarray[1] = -1;
(gdb) n
4 int[2] int_sarray;
(gdb) print int_sarray
$2 = {1, -1}
(gdb)
I'm using LDC r1580 and LLVM prerelease1. I will attach objdump -W for both binaries (LDC and DMD).