Re: [ROOT] shared libs

From: Margar SIMONYAN (simonyan@mail.cern.ch)
Date: Wed Oct 06 2004 - 12:07:43 MEST


Dear Rene Brun

sorry I forgot to mention, I am using ROOT 4.00/08.
Unfortunately I can't send you short file reproducing the problem, but 
base class destructor does nothing, so in case of Tile04 there should not 
be double delete problem. I verified that all pointers are not 0 before 
delete in ~Tile04() . Sometimes CINT  crashes after gROOT->Reset(), 
sometimes after .q .  Even commenting all delete operators in the 
destructor of Tile04 doesn't help. 
I know that without looking inside code it is hard to find a bug, but 
could you say what can make CINT crash ?

Best regards,
              Margar

On Tue, 5 Oct 2004, Rene Brun wrote:

> This looks like a typical double delete problem.
> Could you send the shortest possible running file or set of files 
> reproducing the problem?
> Since you do not indicate which version of ROOT you are using, I assume 
> that you use 4.00/08 or newer.
> If you use an older version, please try first with a more recent version.
> 
> Rene Brun
> 
> On Tue, 
> 5 Oct 2004, Margar 
> SIMONYAN wrote:
> 
> > Dear users of ROOT 
> > 
> > I have several classes which I am compiling from CINT and loading the 
> > shared libraries from rootlogon.C The class dependency is the following
> > 
> > class TileFile{ ... //abstract base class}
> > class Tile23 :public TileFile {...}
> > class Tile02 :public Tile23{...}
> > class Tile03 :public Tile23{...}
> > class Tile04 :public TileFile{...}
> > class TileInfo {...//some useful thinks}
> > class TileAlg { TileFile * t; //polymorphic
> >                 TileInfo i; ...}
> > 
> > If I change something local in Tile04 then is it necessary to re-compile 
> > and re-load TileFile and TileAlg ?
> > In Tile04 I am adding friend to fChain using TTree::AddFriend().
> > All classes in the hierarchy have virtual destructors with the 
> > following implementation (Tile23, Tile02, Tile03, Tile04)
> >  
> > if (!fChain) return;
> >  delete fChain->GetCurrentFile();  
> > 
> > but Tile04::~Tile04() makes CINT crash. I suppose it depends on 
> > TTree::AddFriend(), any idea ?
> > 
> > Best regards,
> >                Margar
> > 
> 
> 



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET