Re: [ROOT] TTree::MakeSelector compiling idiosyncracy

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Apr 09 2001 - 09:39:46 MEST


Hi Mike,

Difficult to make a diagnostic without having your code. It looks like an
unitialized variable somewhere.
It would also help if you could send the result of the debugger traceback
when you get the seg fault, eg on Linux, run under gdb
  gdb root.exe
  root > tree->Process(....)
     here you get the crash
  gdb > info stack

Rene Brun

 
Mike Kordosky wrote:
> 
> Hi,
> 
> I am using the TTree::MakeSelector method to analyze some data that I have
> in a TTree.  It seems that when I initially have root compile the selector
> code, I get a seg fault.  The shared library does get created though, and
> further root sessions don't produce any problems.  Here is a sample
> session:
> 
>   *******************************************
>   *                                         *
>   *        W E L C O M E  to  R O O T       *
>   *                                         *
>   *   Version   3.00/06      3 April 2001   *
>   *                                         *
>   *  You are welcome to visit our Web site  *
>   *          http://root.cern.ch            *
>   *                                         *
>   *******************************************
> 
> FreeType Engine v1.x used to render TrueType fonts.
> 
> CINT/ROOT C/C++ Interpreter version 5.14.79, Feb 24 2001
> Type ? for help. Commands must be C++ statements.
> Enclose multiple statements between { }.
> root [0] gSystem->Load("libTestStand.so");
> root [1] TFile m3file("batch-1063.root");
> root [2] TTree* tree = (TTree*)m3file.Get("T");
> root [3] tree->Process("SimpleSelector.C+","fillList");
> Creating shared library
> /home/kordosky/work/devel/maketree/./SimpleSelector_C.soClass
> SimpleSelector: Streamer() not declared
> Class SimpleSelector: ShowMembers() not declared
> 
>  *** Break *** segmentation violation
> Root > tree->Process("SimpleSelector.C+","fillList");
> Unmodified script has already been compiled and loaded.
> Starting SimpleSelector Analysis with Option: fillList
> Before Histogram
> Before HistRef
> After HistRef
> <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> root [5] .q
> alpha2:/home/kordosky/work/devel/maketree# root
>   *******************************************
>   *                                         *
>   *        W E L C O M E  to  R O O T       *
>   *                                         *
>   *   Version   3.00/06      3 April 2001   *
>   *                                         *
>   *  You are welcome to visit our Web site  *
>   *          http://root.cern.ch            *
>   *                                         *
>   *******************************************
> 
> FreeType Engine v1.x used to render TrueType fonts.
> 
> CINT/ROOT C/C++ Interpreter version 5.14.79, Feb 24 2001
> Type ? for help. Commands must be C++ statements.
> Enclose multiple statements between { }.
> root [0] gSystem->Load("libTestStand.so");
> root [1] TFile m3file("batch-1063.root");
> root [2] TTree* tree = (TTree*)m3file.Get("T");
> root [3] tree->Process("SimpleSelector.C+","fillList");
> Starting SimpleSelector Analysis with Option: fillList
> Before Histogram
> Before HistRef
> After HistRef
> <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> root [4] PostScript file: c1.ps has been created
> 
> My tree entry does contain a (split) class called HistRef, which I load
> via gSystem->Load(...) above.  I include HistRef.h in the SimpleSelector.h
> file.  Perhaps this is causing some of the problems? I actually don't care
> about this one segfault, since I think that during the second session I
> am running at compiled speed and the seg fault only seems to happen once.
> Anyone got any ideas?
> 
> Thanks!
> 
> Mike Kordosky



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:41 MET