RE:Re: ROOT Bug Report

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Mon Sep 14 1998 - 13:43:00 MEST


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



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:37 MET