First of all you have following problem in you analysis, where %CODE{"cpp"}% delete myHades; %ENDCODE% is called. I get following error:
*Segmentation fault (core dumped)*
If you start debugger and make backtrace, you get:
#0 0xb66d8227 in HMdcTrackGCorrPar::~HMdcTrackGCorrPar () at TString.h:293
#1 0xb7a528e2 in TCollection::GarbageCollect () from /usr/local/opt/root/403-02/lib/libCore.so
#2 0xb7a5fe72 in TList::Delete () from /usr/local/opt/root/403-02/lib/libCore.so
#3 0xb579ba34 in ~HRuntimeDb (this=0x80611a0) at hruntimedb.cc:62
#4 0xb601a90f in ~Hades (this=0x9547200) at hades.cc:115
#5 0x0804c9db in analysisDST (inputFile=
, nEvents=5, startEvt=0) at analysisDST_jan05_G1.cc:375
#6 0x0804cea0 in main (argc=3, argv=0xbfa79194) at stdlib.h:398
To comment out several lines out in destructor of HMdcTrackGCorrPar (before I tried to set the pointers to NULL, e.g.
%CODE{"cpp"}%corrScan0 = NULL;%ENDCODE%; unfortunately didn't help)
%CODE{"cpp"}%
HMdcTrackGCorrPar::~HMdcTrackGCorrPar()
{
if(fieldmap) delete fieldmap;
if(corr) delete corr;
if(corr1) delete corr1;
// if(corrScan0) delete corrScan0;
// if(corrScan1) delete corrScan1;
// if(corrScan2) delete corrScan2;
if(spline) delete spline;
}
%ENDCODE%
does not help really, you get following error:
* glibc detected * double free or corruption (prev): 0x09f0fd38 ***
Aborted (core dumped)
and the corresponding BackTrace in debbuger looks like:
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb53d77d5 in raise () from /lib/tls/libc.so.6
#2 0xb53d9149 in abort () from /lib/tls/libc.so.6
#3 0xb540b27a in __libc_message () from /lib/tls/libc.so.6
#4 0xb5411abf in _int_free () from /lib/tls/libc.so.6
#5 0xb5411e3a in free () from /lib/tls/libc.so.6
#6 0xb5591941 in operator delete () from /usr/lib/libstdc+
+.so.6
#7 0xb7a0d387 in TStorage::ObjectDealloc () from /usr/local/opt/root/403-02/lib/libCore.so
#8 0xb79f1381 in TObject::operator delete () from /usr/local/opt/root/403-02/lib/libCore.so
#9 0xb66c99c3 in ~HMdcTrackGSpline (this=0x9f0fd38) at hmdctrackgspline.cc:112
#10 0xb65bb1e0 in HKickTrackFB::~HKickTrackFB () at TString.h:293
#11 0xb7a418e2 in TCollection::GarbageCollect () from /usr/local/opt/root/403-02/lib/libCore.so
#12 0xb7a5483d in TOrdCollection::Delete () from /usr/local/opt/root/403-02/lib/libCore.so
#13 0xb5792593 in HTaskSet::~HTaskSet () at TString.h:293
#14 0xb7a418e2 in TCollection::GarbageCollect () from /usr/local/opt/root/403-02/lib/libCore.so
#15 0xb7a5483d in TOrdCollection::Delete () from /usr/local/opt/root/403-02/lib/libCore.so
#16 0xb5792593 in HTaskSet::~HTaskSet () at TString.h:293
#17 0xb7a418e2 in TCollection::GarbageCollect () from /usr/local/opt/root/403-02/lib/libCore.so
#18 0xb7a524f3 in TObjArray::Delete () from /usr/local/opt/root/403-02/lib/libCore.so
#19 0xb600993a in ~Hades (this=0x9547200) at hades.cc:118
#20 0x0804c9db in analysisDST (inputFile=, nEvents=5, startEvt=0) at analysisDST_jan05_G1.cc:375
#21 0x0804cea0 in main (argc=3, argv=0xbfc66174) at stdlib.h:398
Next point of investigation was to check destructors of HKickTrackFB and HMdcTrackGSpline
-- MartinJurkovic - 04 Sep 2005