TTree Branch crash

Hi,

i’m trying to run this sample program on Oracle Solaris 10 x86 (amd64),
compiled with Oracle Studio 12.2.


#include <iostream>
#include "TTree.h"

int main(int argc, char** argv) {
  TTree* t = new TTree("t", "t");
  
  Int_t a = 5;
  
  t->Branch("a", &a);
  
  delete t;
  return 0;
}

$ CC root-config --cflags root-config --libs treetest.cxx -o treetest
$ dbx treetest

(dbx) run
Running: treetest
(process id 3684)
t@1 (l@1) signal SEGV (no mapping at the fault address) in G__strlcpy at 0xfffffd7ffc092dd0
0xfffffd7ffc092dd0: G__strlcpy+0x0018: movsbl (%rax),%ecx
(dbx) where
current thread: t@1
=>[1] G__strlcpy(0xfffffd7ffc354efe, 0x0, 0x3ff, 0xfffffd7ffc7ee930, 0x28, 0x0), at 0xfffffd7ffc092dd0
[2] G__incsetup_memfunc(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffc16e6bb
[3] Cint::G__ClassInfo::HasMethod(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffc0cdbe4
[4] TCint::ClassInfo_HasMethod(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd39b8f
[5] TClass::Property(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd4ba43
[6] TClass::IsForeign(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd4b53d
[7] TClass::PostLoadCheck(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd4b5df
[8] TROOT::LoadClass(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffccde1fc
[9] TClass::GetClass(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd44f9a
[10] TBaseClass::GetClassPointer(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd2df8b
[11] TClass::GetBaseClass(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd43d92
[12] TClass::InheritsFrom(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffcd49ba9
[13] TBranch::Init(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe2ec41c
[14] TBranch::TBranch(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe2ebabf
[15] TTree::Branch(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe340e8b
[16] TTree::BranchImpRef(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe340583
[17] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x4015f2
(dbx)

$ root-config --cflags --libs
-D_REENTRANT -m64 -library=stlport4 -I/opt/root/include -L/opt/root/lib -lGpad -lHist -lGraf -lGraf3d -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lRIO -lNet -lThread -lCore -lCint -lpthread -lm -ldl -lnsl -lsocket

ROOT 5.30/01 (tags/v5-30-01@40633, Aug 18 2011, 16:46:17 on solaris64CC5)

The program runs fine on Ubuntu Linux with g++ and root 5.30/02.

Any ideas?

Thanks

Julian

How about:
t->Branch(“a”, &a, “a/I”);

Thank you for your answer.
I already tried that - same problem…

And in the root-Shell everything works fine:

root [1] TTree* t = new TTree(“t”, “t”);
root [2] Int_t a = 6;
root [3] t->Branch(“a”, &a);
root [6] t->Print()

Julian

Hi,

using you example code and compile statement with v5-32-00 on Solaris 11 with CC studio 12.2 it all works fine:

(solaris11) [280] CC root-config --cflags root-config --libs treetest.cxx -o treetest
(solaris11) [281] ./treetest
(solaris11) [282]

Please move for Solaris to the latest version.

Cheers, Fons.

Hi,

thanks for your help.

I just upgraded to 5.32 and everything works now.

Julian