ROOT Version: 6.18 for centOs7
Platform: Not Provided
Compiler: g++
Dear ROOT community,
I am fasing some strange issue when applying lambda function in source file to TF1. Code snippet is as follows:
auto fit_lamb = (Double_t* x, Double_t* par){return TMath::Sqrt((x)(*x)+par[0]par[0]);};
TF1 fit = new TF1(“fit”,fit_lamb,0,25,1);
This one works without problems under prompt, and any other way without lambdas in source file works just fine (seemingly at least). But, as long as I run snippet above with use of source file, I continue receiving segfault. Stack trace is as follows:
#0 0x00007fd91366845c in __libc_waitpid (pid=14175, stat_loc=stat_loc
entry=0x7fff0da2c120, options=options
entry=0) at …/sysdeps/unix/sysv/linux/waitpid.c:31
#1 0x00007fd9135e5f52 in do_system (line=) at …/sysdeps/posix/system.c:148
#2 0x00007fd9181db9f4 in TUnixSystem::StackTrace() () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libCore.so.6.18
#3 0x00007fd9181de12c in TUnixSystem::DispatchSignals(ESignals) () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libCore.so.6.18
#4
#5 0x00007fd91418bf2b in _M_is_leaked (this=) at /root/zuev/objdir/x86_64-pc-linux-gnu/libstdc+±v3/include/bits/basic_string.tcc:609
#6 _M_grab (__alloc2=…, __alloc1=…, this=) at /root/zuev/objdir/x86_64-pc-linux-gnu/libstdc+±v3/include/bits/basic_string.h:3286
#7 std::basic_string<char, std::char_traits, std::allocator >::basic_string (this=0x26356d8, __str=…) at /root/zuev/objdir/x86_64-pc-linux-gnu/libstdc+±v3/include/bits/basic_string.tcc:613
#8 0x00007fd9170396c8 in TF1::Copy(TObject&) const () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libHist.so.6.18
#9 0x00007fd91700ba94 in void HFit::StoreAndDrawFitFunction(TGraph*, TF1*, ROOT::Fit::DataRange const&, bool, bool, char const*) () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libHist.so.6.18
#10 0x00007fd91700db2c in TFitResultPtr HFit::Fit(TGraph*, TF1*, Foption_t&, ROOT::Math::MinimizerOptions const&, char const*, ROOT::Fit::DataRange&) () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libHist.so.6.18
#11 0x00007fd917006ffc in ROOT::Fit::FitObject(TGraph*, TF1*, Foption_t&, ROOT::Math::MinimizerOptions const&, char const*, ROOT::Fit::DataRange&) () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libHist.so.6.18
#12 0x00007fd91709fd0f in TGraph::Fit(TF1*, char const*, char const*, double, double) () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libHist.so.6.18
#13 0x00007fd9170a634e in TGraph::Fit(char const*, char const*, char const*, double, double) () from /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/x86_64-centos7-gcc48-opt/lib/libHist.so.6.18
#14 0x0000000000406224 in main ()
I attach full source file read_tree.cpp (1.7 KB)
I also tag @moneta since I am sure he can help me with the issue.
Thanks in advance.