Re: [ROOT] shared libs

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Oct 06 2004 - 12:28:08 MEST


I cannot tell you what is going wrong without knowing what you are doing.
I need the shortest possible running script reproducing your problem.
Note that gROOT->Reset should only be used inside an unnamed macro.

Rene brun

Margar SIMONYAN wrote:
> 
> 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