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

From: Valeri Fine (fine@bnl.gov)
Date: Tue Jul 08 2003 - 23:06:37 MEST


Hello Ed,

2 more questions:

- Are you running in batch mode? Do you have any open canvas at the time
you are processing your files.
- Did you link against of libNew.lib?

   Thank you.
                    Valeri

> -----Original Message-----
> From: Ed Oltman [mailto:eoltman@imago.com]
> Sent: Tuesday, July 08, 2003 9:43 PM
> To: Roottalk@Pcroot. Cern. Ch
> Subject: [ROOT] deletion of a TProfile object crashes in Win2k.
> 
> 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