Giuliano P Procida <[EMAIL PROTECTED]> writes: 
> 
 ...
> 
> 08549690 <shutdownHaskell>:
>  8549690:       e8 4b 26 00 00          call   854bce0 
> <finaliseWeakPointersNow>
>  8549695:       e8 26 23 00 00          call   854b9c0 <exitStorage>
>  854969a:       68 f0 32 5d 08          pushl  $0x85d32f0
>  854969f:       e8 d0 f9 af ff          call   8049074 <_init+0x114>
>  85496a4:       83 c4 04                addl   $0x4,%esp
>  85496a7:       c3                      ret    
> 
> 08048f94 <.plt>:
>  8049074:       ff 25 fc 30 5d 08       jmp    *0x85d30fc
> 
> (gdb) printf "%p\n" , (* 0x85d30fc)
> 0x40086920
> 
> plt seems to be the C library's entry table and the address does
> correspond to fflush. I can only assume 0x85d32f0 is supposed to be a
> FILE *. (sfx: installs debugging C lib) Now I just have to look at:
> 
> (gdb) bt
> #0  0x40066981 in _IO_fflush (fp=0x85d32f0) at iofflush.c:41
> #1  0x85496a4 in   ()
> 
> tomorrow. There have been other SEGV problems reported to the 
> Debian BTS with regard to IO troubles with glibc2.1 (but that
> was C++). I'll report this as well. Can someone confirm that
> the shutdownHaskell thingum is not being silly?
> 

It looks sensible, shutdownHaskell() is the last thing the
RTS calls before exiting. Could it be that fflush() is failing
since stdout hasn't been used? Does the following work OK

#include <stdio.h>

int
main()
{
  fflush(stdout);
  return 0;
}

if it does, what about this

#include <stdio.h>

int
main()
{
  char msg[]="Hello";

  write(1,msg,sizeof(msg)-1);
  fflush(stdout);
  return 0;
}

hth
--sigbjorn

Reply via email to