Rene did a little analysis for me and I found a couple of things here.
1) The problem happens when using 'operator(ostream& ost,T& obj)' after
reloading iostream.h.
2) This happens only on ROOT, raw Cint works fine.
This problem is really strange. I haven't been able to figure out root
cause of the problem. A workaround, for the time being would be to add
following line to rootlogon.C.
gSystem.Load("iostream.h");
or
G__loadfile("iostream.h");
Doing this will prevent iosteram.h to be unloaded.
Masaharu Goto
>Masa,
>I already noticed that if one tries to execute again a file
>with includes, this crashes CINT (see traceback below).
>I tried the trivial example from Greg Novak by executing
>#include<iostream.h> only once. in this case, I can rexecute
>the file many times.
>Here is my test session with the traceback:
>
>root [0] .L Hello.C
>root [1] main()
>Hello World!
>(int)0
>root [2] .L Hello.C
>root [3] main()
>
>Program received signal SIGSEGV, Segmentation fault.
>0x40125879 in G__interpret_func ()
>
>Program received signal SIGSEGV, Segmentation fault.
>0x40128607 in G__interpret_func (result7=0xbfff3ee0,
> funcname=0xbfff3e40 "operator<<", libp=0xbfff117c, hash=996,
> p_ifunc=0x101, funcmatch=1, memfunc_flag=2) at CINT_ifunc.c:1962
>1962 while((ipara==0)&&(ifn<p_ifunc->allifunc)) {