Try to increase the stack size (using --stack-size=32K or even --stack-size=1M). If that works, you need to modify grt/config/linux.c for FreeBSD.
That's C code, so there is no Ada barrier :-) Tristan. ----- Mail original ----- > On Mon, 20 Jan 2014 19:05:58 +0100 (CET) > [email protected] wrote: > > > Is frame 0 available at crash point ? > > > > Oops, sorry. > > (gdb) run --assert-level=note > Starting program: /home/hanzer/devel/dlx/dlx_test_behaviour > --assert-level=note 0 X"20020000" > 4 X"AC020018" > 8 X"20420001" > 12 X"6441000A" > 16 X"1420FFF0" > 20 X"44000000" > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004299ac in work__dlx__ARCH__behaviour__interpreter__PROC > (INSTANCE=<error reading variable: Cannot access memory at address > 0x80073bd88>) at dlx-behaviour.vhdl:143 143 mem_enable <= > '0' > 0x80073bd88>after Tpd_clk_out; > > (gdb) bt > #0 0x00000000004299ac in > work__dlx__ARCH__behaviour__interpreter__PROC > (INSTANCE=<error reading variable: Cannot access memory at address > 0x80073bd88>) at dlx-behaviour.vhdl:143 #1 0x0000000000441cd4 in > 0x80073bd88>grt_stack_loop () > 0x80073bd88>at > /home/hanzer/ghdl_build/source/gcc-4.8-20130808/gcc/vhdl/grt/config/amd64.S:40 > #2 0x00000008014fac00 in ?? () > #3 0x0000000000429998 in > work__dlx__ARCH__behaviour__interpreter__bus_read (INSTANCE=0x0, > address=0x0, data_width=width_byte, instr_fetch=false, data=0x0, > phi1=0x0, phi2=0x2000, reset=<error reading variable: Cannot access > memory at address 0x80073e000>, a=<error reading variable: Cannot > access memory at address 0x80073e008>, d=<error reading variable: > Cannot access memory at address 0x80073e010>, width=<error reading > variable: Cannot access memory at address 0x80073e018>, > write_enable=<error reading variable: Cannot access memory at address > 0x80073e020>, mem_enable=<error reading variable: Cannot access > memory > 0x80073e020>at address 0x80073e028>, ifetch=<error reading variable: > 0x80073e020>Cannot access memory at address 0x80073e030>, > ready=<error > 0x80073e020>reading variable: Cannot access memory at address > 0x80073e020>0x80073e038>, tpd_clk_out=<error reading variable: Cannot > 0x80073e020>0x80073e038>access memory at address 0x80073e040>) at > 0x80073e020>0x80073e038>dlx-behaviour.vhdl:143 #4 0x000000080073dfa8 > 0x80073e020>0x80073e038>in ?? () > #5 0x0000000000002000 in ?? () > Cannot access memory at address 0x80073e000 > > (gdb) frame 0 > #0 0x00000000004299ac in > work__dlx__ARCH__behaviour__interpreter__PROC > (INSTANCE=<error reading variable: Cannot access memory at address > 0x80073bd88>) at dlx-behaviour.vhdl:143 143 mem_enable <= > '0' > 0x80073bd88>after Tpd_clk_out; > > (gdb) info reg > rax 0x1 1 > rbx 0x2 2 > rcx 0x5 5 > rdx 0x1 1 > rsi 0x683f60 6831968 > rdi 0x8014fac00 34381736960 > rbp 0x80073dfd0 0x80073dfd0 > rsp 0x80073bd30 0x80073bd30 > r8 0x684ba0 6835104 > r9 0x1 1 > r10 0x1 1 > r11 0x801407000 34380738560 > r12 0x0 0 > r13 0x8014fac00 34381736960 > r14 0x429998 4364696 > r15 0x0 0 > rip 0x4299ac 0x4299ac > <work__dlx__ARCH__behaviour__interpreter__PROC+20> eflags > 0x10206 [ PF IF RF ] cs 0x43 67 > ss 0x3b 59 > ds *value not available* > es *value not available* > fs *value not available* > gs *value not available* > > (gdb) print /x $esp > $1 = 0x73bd30 > > (gdb) disassemble $pc,$pc+20 > Dump of assembler code from 0x4299ac to 0x4299c0: > => 0x00000000004299ac > <work__dlx__ARCH__behaviour__interpreter__PROC+20>: mov > %rdi,-0x2248(%rbp) 0x00000000004299b3 > <work__dlx__ARCH__behaviour__interpreter__PROC+27>: mov > -0x2248(%rbp),%rax 0x00000000004299ba > <work__dlx__ARCH__behaviour__interpreter__PROC+34>: add > $0x158,%rax End of assembler dump. > > _______________________________________________ > Ghdl-discuss mailing list > [email protected] > https://mail.gna.org/listinfo/ghdl-discuss > _______________________________________________ Ghdl-discuss mailing list [email protected] https://mail.gna.org/listinfo/ghdl-discuss
