RE: [ROOT] deletion of a TProfile object crashes in Win2k.

From: Ed Oltman (eoltman@imago.com)
Date: Wed Jul 09 2003 - 00:18:16 MEST


Rene,
 I built the root libraries using

	ftp://root.cern.ch/root/root_v3.05.05a.source.tar.gz

and my problems have become worse.  I now getting  "user
breakpoint called from code at ..." messages - disassembly
window shows "int 3" instruction.  Problem occurs when I attempt:

	gSystem->AccessPathName()

Note: I have not put in any breakpoints..

Ed



> -----Original Message-----
> From: Rene Brun [mailto:brun@pcbrun.cern.ch]
> Sent: Tuesday, July 08, 2003 3:01 PM
> To: Ed Oltman
> Cc: Roottalk@Pcroot. Cern. Ch
> Subject: Re: [ROOT] deletion of a TProfile object crashes in Win2k.
>
>
> Hi Ed,
>
> A problem difficult to investigate.
>
> Could you try with the CVS head, or if you prefer with the corresponding
> tar file at ftp://root.cern.ch/root/root_v3.05.05a.source.tar.gz
>
> Rene Brun
>
> On
> Tue, 8 Jul 2003, Ed Oltman wrote:
>
> > Hello,
> >
> > I have a dll built with win32 root version 3.05/5 that opens
> and processes
> > several root file in sequence.  The root file contains an
> object containing
> > a TProfile
> > member:
> >
> >  TProfile *fVoltProf;
> >
> > This object is read from an input  with objects (costumized)
> Streamer():
> >
> > 	R__b >> fVoltProfile; if (fVoltProfile)
> > fVoltProfile->SetDirectory(0)
> >
> > When the second file is opened, this object's dtor is called.
> The following
> > line causes a crash (access violation) when the member's
> > fFunction->Delete() is called  in TH1::~TH1():
> >
> >   delete fVoltProfile;
> >
> > fVoltProfile->fFunctions has two items: The first is a TF1
> object that is
> > deleted
> > just fine.  The second is a TPaveStats and thats what causes
> the crash.  The
> > stack is shown starting from when my TProfile is deleted...
> >
> >
> > 00ff035b()
> > TList::Remove(TObject * 0x024755c8) line 551 + 16 bytes
> > TCollection::RecursiveRemove(TObject * 0x024755c8) line 283 + 18 bytes
> > TPaveStats::~TPaveStats() line 88
> > LIBGRAF! TPaveStats::`vector deleting destructor'(unsigned int)
> + 84 bytes
> > TCollection::GarbageCollect(TObject * 0x024755c8) line 415 + 31 bytes
> > TList::Delete(const char * 0x00ba4f3c) line 386 + 14 bytes
> > TH1::~TH1() line 472
> > TH1D::~TH1D() line 6068 + 50 bytes
> > TProfile::~TProfile() line 78 + 29 bytes
> > LIBHIST! TProfile::`vector deleting destructor'(unsigned int) + 84 bytes
> > CVoltage::~CVoltage() line 40 + 45 bytes <-- This is where delete
> > fVoltProfile occurs
> >
> > Note 0: I am running on Win2k
> >
> > Note 1: this crash only occurs when I run my dll in the
> debugger.  The crash
> > only occurs
> > when I debug the DLL from visual v++6.  If I simply run the
> debug version,
> > it does not
> > crash.
> >
> > Note 2:  I build the root libraries using cygwin+make+visual
> c++ 6 so that I
> > don't rely
> > on the .net libraries.  I used the sources from
> root_v3.05.05.source.tar.gz
> > on root
> > website.
> >
> > Any help on this problem would be greatly appreciated - thank you..
> >
> > Ed Oltman
> >
>
>
>
>



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET