RE:Re: ROOT Bug Report

Masaharu Goto (MXJ02154@nifty.ne.jp)
Mon, 14 Sep 1998 20:43:00 +0900


Greg,

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)) {