Hello,
One of my macros crashes, and I can reproduce the problem in this little
simple example:
void start()
{
int max=30;
int iterator=0;
while(iterator!=max)
{
if(iterator<10 || iterator>20) // <--- *********
{
cout<<"hello: "<<iterator<<endl;
TString str_cut1="detCEL==1";
TCut cut1=str_cut1;
TString str_cut2="sampCEL==2";
TCut cut2=str_cut2;
TCut cut = cut1 && cut2; // <--- *********
}
++iterator;
}
}
Try to execute this and you will have the "break segmentation violation"
below, but:
- if you comment the line TCut cut = cut1 && cut2;
OR
- if you do not make the cut (10->20) in the loop
then it works !!
Hard to believe it...
Maybe I don't use correctly the TCuts (not a big experience with them) ? In
my macro, I retrieve a ntuple and want draw variables (as "detCEL" and
"sampCEL") with cuts.
Could you help me ??
Matthieu.
PS: I'm working on lxplus with
ROOTSYS=/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root
*** Break *** segmentation violation
Generating stack trace...
0x406dcc84 in G__exec_asm + 0x1714 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406cdee5 in G__exec_loop + 0x4d9 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406ce0fa in G__exec_while + 0x82 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406d0f7e in G__exec_statement + 0x289a from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406a1eb4 in G__interpret_func + 0x20c0 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406872ae in G__getfunction + 0x1f86 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x4067bd11 in G__getitem + 0x715 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x4067a3c3 in G__getexpr + 0x8c5f from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406c9c6b in G__exec_function + 0x17b from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406d131d in G__exec_statement + 0x2c39 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406610bc in G__exec_tempfile_core + 0x2b4 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x4066128d in G__exec_tempfile_fp + 0x25 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x406d9edc in G__process_cmd + 0x5094 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCint.so
0x40198b1e in TCint::ProcessLine(char const *, TInterpreter::EErrorCode *)
+ 0x9e from /afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x401162fe in TApplication::ProcessLine(char const *, bool, int *) + 0x5b2
from /afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x40f51333 in TRint::HandleTermInput(void) + 0x1bb from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libRint.so
0x40f503e1 in TTermInputHandler::Notify(void) + 0x29 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libRint.so
0x40f5173c in TTermInputHandler::ReadNotify(void) + 0x24 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libRint.so
0x40204d9a in TUnixSystem::CheckDescriptors(void) + 0xfe from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x402044c4 in TUnixSystem::DispatchOneEvent(bool) + 0x110 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x401688a9 in TSystem::InnerLoop(void) + 0x31 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x40168819 in TSystem::Run(void) + 0x79 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x40116cd6 in TApplication::Run(bool) + 0x32 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libCore.so
0x40f50d5b in TRint::Run(bool) + 0x2e3 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/lib/libRint.so
0x080488ac in main + 0x88 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/bin/root.exe
0x42017589 in __libc_start_main + 0x95 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/bin/root.exe
0x08048751 in __register_frame_info + 0x35 from
/afs/cern.ch/sw/root/v3.10.02/rh73_gcc2952/root/bin/root.exe
Root > Function start() busy flag cleared
NB: with my macro (more heavy than the little example above), I have in
addition the line below appearing when I leave with .q
Error: ~TString() header declared but not defined FILE: LINE:0
Problem of TString's destructor when it's used by TCut ??
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET