On Fri, Nov 14, 2014 at 11:03:15PM +0100, Martin Husemann wrote: > Core was generated by `sed'. > Program terminated with signal SIGSEGV, Segmentation fault. > ... > 0x8c2b4: movel %d1,%a1@+ > 0x8c2b6: beqs 0x8c2be > => 0x8c2b8: addql #1,%d0 > 0x8c2ba: cmpl %d0,%d2 > 0x8c2bc: bccs 0x8c2ac > 0x8c2be: movel %sp@+,%d2 > 0x8c2c0: unlk %fp > 0x8c2c2: rts
More interesting how it got there: (gdb) x/16i 0x0006fce0 0x6fce0: lea 0x8c296,%a2 0x6fce6: jsr %a2@ 0x6fce8: movel %d0,%d4 indirect function pointer call via %a2 to: (gdb) x/16i 0x8c296 0x8c296: linkw %fp,#0 0x8c29a: movel %d2,%sp@- 0x8c29c: movel %fp@(16),%d2 0x8c2a0: moveal %fp@(12),%a0 0x8c2a4: moveal %a0@,%a0 0x8c2a6: moveal %fp@(8),%a1 0x8c2aa: clrl %d0 0x8c2ac: tstl %a0 0x8c2ae: beqs 0x8c2be 0x8c2b0: clrl %d1 0x8c2b2: moveb %a0@+,%d1 0x8c2b4: movel %d1,%a1@+ 0x8c2b6: beqs 0x8c2be => 0x8c2b8: addql #1,%d0 I still don't see the segmentation violation - what am I missing? Gdb is a bit confused about the stack: (gdb) bt #0 0x0008c2b8 in ?? () #1 0xffffaba4 in ?? () #2 0xffffbc34 in ?? () #3 0x0006fce8 in ?? () #4 0x00000000 in ?? () Martin