Home | News | Documentation | Download

Problem in re-loading macro


ROOT Version: 6.12/06
Platform: linux
Compiler: Not Provided


I have a problem reloading macro after editing it. To simplify the problem, here is a very simple macro:

File: test1.C:

void test1(TH1* h1){

I run root with my file with histograms like this:

root my_file_with_histograms.root

root [1] .L root/test1.C
root [2] test1(my_histogram)   //my_histogram is the existing histogram in my_file_with_histograms.root

Up to now, everything works fine. But if I try now to unload the macro (or upload the new version of it) I get the segmentation violation:

root [3] .U root/test1.C

 *** Break *** segmentation violation

There was a crash.
This is the entire stack trace of all threads:
#0  0x00007f31de2ae89e in waitpid () from /lib64/libc.so.6
#1  0x00007f31de2404e9 in do_system () from /lib64/libc.so.6
#2  0x00007f31df2ea4c8 in TUnixSystem::StackTrace() () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.34/InstallArea/x86_64-slc6-gcc62-opt/lib/libCore.so
#3  0x00007f31df2ec9cc in TUnixSystem::DispatchSignals(ESignals) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.34/InstallArea/x86_64-slc6-gcc62-opt/lib/libCore.so
#4  <signal handler called>
#5  0x0000000000000000 in ?? ()
#6  0x00007f31da0e6c11 in cling::Transaction::~Transaction() () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.34/InstallArea/x86_64-slc6-gcc62-opt/lib/libCling.so

Please let me know what I need to do to avoid this crash.
Thank you in advance.


Cling does not yet support (properly) unloading (and thus reloading) a macro. Unfortunately, for now, the work-around is to quit the session and restart.