spir Wrote:
> For the following prog, I get:
>
> int element(int[] elements, uint i) {return elements[i];}
> void main () {
> int[] elements = [3,2,1];
> auto e = elements[9];
> }
>
> s...@o:~/prog/d$ dmd -ofprog -w -debug -unittest -L--export-dynamic prog.d
> s...@o:~/prog/d$ ./prog
> core.exception.rangeer...@prog(20): Range violation
> ----------------
> ./prog(_d_array_bounds+0x16) [0x807cad6]
> ./prog(_D4prog7__arrayZ+0x12) [0x807a54a]
> ./prog(_Dmain+0x38) [0x807a524]
> ./prog(extern (C) int rt.dmain2.main(int, char**)) [0x807cc76]
> ./prog(extern (C) int rt.dmain2.main(int, char**)) [0x807cbd0]
> ./prog(extern (C) int rt.dmain2.main(int, char**)) [0x807ccba]
> ./prog(extern (C) int rt.dmain2.main(int, char**)) [0x807cbd0]
> ./prog(main+0x96) [0x807cb76]
> /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x1ddbd6]
> ./prog() [0x807a401]
>
> Do you have (even) nicer error reports on some OS's or using some switches?
I believe this is where compiling with -gc (debug info that looks like C) as it
should give you line numbers.