Hi Rene Does this apply to all gROOT functions or only the Reset command? Have I missed in the documentation somewhere as to the "why" this should not be done? Thanks Darren On Mon, 7 Jun 2004, Rene Brun wrote: > gROOT->Reset() should not be called in a named script or a compiled program. > > Rene Brun > > Darren Grant wrote: > > > > Hi > > > > I have come across an error I dont understand in running some root code. > > I have tried to include the > > > > gROOT->Reset(); > > > > command in my code. I compile without errors but when I run the code I > > get the following error: > > > > *** Break *** segmentation violation > > Generating stack trace... > > 0x4068b65e in G__scratch_globals_upto + 0x27 from > > /home/dgrant/root/lib/libCint.so > > 0x40176439 in TCint::ResetGlobals() + 0x21 from > > /home/dgrant/root/lib/libCore.so > > 0x4013a698 in TROOT::Reset(char const*) + 0x32 from > > /home/dgrant/root/lib/libCore.so > > 0x08049067 in main + 0x2f from matread > > 0x42015574 in __libc_start_main + 0xe4 from /lib/tls/libc.so.6 > > 0x08048f9d in TFile::TFile[in-charge](char const*, char const*, char > > const*, int) + 0x31 from matread > > Abort (core dumped) > > > > A simplified version of the code is: > > > > #include <cstdio> > > #include <iostream> > > #include <string> > > #include "TFile.h" > > #include "TTree.h" > > #include "TH2.h" > > #include "TCanvas.h" > > #include "TVector.h" > > #include "TROOT.h" > > #include "TCint.h" > > > > using namespace std; > > > > TROOT rootBase("analysis","ROOT analysis environment"); > > int main() > > { > > gROOT->Reset(); > > TFile *file = new TFile ("test.root", "RECREATE"); > > TTree *tree = new TTree ("tree", "Testing"); > > > > } > > > > And this is compiled with a makefile: > > > > # Makefile > > # > > ROOTLIBS = $(shell root-config --libs) -lMinuit #-lTable > > -lHtml > > ROOTGLIBS = $(shell root-config --glibs) > > ROOTINCLUDE ?= $(shell root-config --incdir) > > MATLABDIR = /data4/dgrant/Matlab_Inst/extern/lib/glnx86 > > MATLABD2 = /data4/dgrant/Matlab_Inst/bin/glnx86 > > > > CXX = g++ > > CXXFLAGS = -O2 -Wall -fPIC -I$(ROOTINCLUDE) > > > > OBJS = matread.o > > > > matread: $(OBJS) > > $(CXX) $(CXXFLAGS) $(ROOTLIBS) $(ROOTGLIBS) -L$(MATLABDIR) -lmat > > -lmx -l > > mmfile -lmwservices -L$(MATLABD2) -lmatlb -lmex -lmwmpath -lmwudd -o $@ $^ > > > > matread.d: matread.cxx > > @echo "Generating dependency file $@" > > @set -e; rm -f $@ > > @$(CXX) -M $(CXXFLAGS) $< > $@.tmp > > @sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@ > > @rm -f $@.tmp > > > > include matread.d > > > > matread.o: matread.cxx matread.h > > $(CXX) -c $(CXXFLAGS) $< > > > > clean: > > rm -f *.o > > rm -f *.d > > > > Has anyone come across this before and maybe offer some advice? > > > > Thanks so much! > > Cheers > > Darren >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET