Mail Archives: djgpp-workers/2002/05/19/14:44:38
> And when I run Emacs w/o unixy sbrk bit under gdb, it looks like:
>
> (gdb) r
> Starting program: d:/devel/djgpp/gnu/emacs/src/../bin/emacs.exe
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00001254 in dos_alloc_ok ()
>
> (gdb) disas 0x123a 0x1254
> Dump of assembler code from 0x123a to 0x1254:
> 0x123a <dos_alloc_ok+209>: je 0x12a8 <no_memory>
> 0x123c <dos_alloc_ok+211>: mov %eax,0x206510
> 0x1241 <dos_alloc_ok+216>: mov %eax,%edi
> 0x1243 <dos_alloc_ok+218>: mov %fs:0x10,%ecx
> 0x124a <dos_alloc_ok+225>: shr $0x2,%ecx
> 0x124d <dos_alloc_ok+228>: xor %esi,%esi
> 0x124f <dos_alloc_ok+230>: push %ds
> 0x1250 <dos_alloc_ok+231>: push %fs
> 0x1252 <dos_alloc_ok+233>: pop %ds
> 0x1253 <dos_alloc_ok+234>: cld
> End of assembler dump.
This section of code is in crt0.s and copies stubinfo from dos memory
into an sbrk()'ed block of memory. If we knew the values of ESI and
EDI it would certainly help understand why the rep movsl was failing.
(since we load ESI with zero, we could tell if it's failing on the first
move or someplace later).
- Raw text -