Hi Nuno, When you get this kind of problem with I/O, add the following statement: gDebug=2; just before reading your event. This will give you more details and a precise location where the problem occurs. In case you do not find the error with gDebug, - indicate which version you are using - send a small tar file with the strict minimum to reproduce the problem. Rene Brun On Mon, 12 Aug 2002, Nuno Almeida wrote: > Hi all > > I have the following problem: > > I have a root file with TObjects written by method Write(). > To get the objects i do the following steps: > > Load the shared library: .L libEvento.so > Open the root file: TFile *f=new TFile("Evento.root") > Create a event: Event *e=(Event*)f->Get("Event;2"); > > Then i delete the event and then i try open another > > Event *e=(Event*)f->Get("Event;4"); > > And i obtain a segmentation fault. The backtrace information is the following > > Program received signal SIGSEGV, Segmentation fault. > 0x40132dd7 in TObjString::IsEqual () from /home/nmaa/root/lib/libCore.so > Current language: auto; currently c > (gdb) bt > #0 0x40132dd7 in TObjString::IsEqual () from /home/nmaa/root/lib/libCore.so > #1 0x40192b25 in TStreamerInfo::ReadBuffer () from > /home/nmaa/root/lib/libCore.so > #2 0x40181c0c in TClass::ReadBuffer () from /home/nmaa/root/lib/libCore.so > #3 0x4001e629 in Event::Streamer (this=0x84faba8, R(bool)=@0x84f3820) at > EventoDict.cxx:317 > #4 0x40025a94 in G__Event_Streamer_9_1__FP8G__valuePCcP8G__parami > (result7=0xbfff8abc, funcname=0x0, libp=0xbfff5658, hash=0) > at EventoDict.cxx:2118 > #5 0x40546cca in G__call_cppfunc () from /home/nmaa/root/lib/libCint.so > #6 0x40534d56 in G__interpret_func () from /home/nmaa/root/lib/libCint.so > #7 0x4051a714 in G__getfunction () from /home/nmaa/root/lib/libCint.so > #8 0x405ab2a5 in G__getstructmem () from /home/nmaa/root/lib/libCint.so > #9 0x40519d7c in G__getfunction () from /home/nmaa/root/lib/libCint.so > #10 0x40512a84 in G__getitem () from /home/nmaa/root/lib/libCint.so > #11 0x405111f8 in G__getexpr () from /home/nmaa/root/lib/libCint.so > #12 0x40507f81 in G__calc_internal () from /home/nmaa/root/lib/libCint.so > #13 0x40508013 in G__calc () from /home/nmaa/root/lib/libCint.so > #14 0x40178f09 in TCint::Calc () from /home/nmaa/root/lib/libCore.so > #15 0x40129e80 in TKey::ReadObj () from /home/nmaa/root/lib/libCore.so > #16 0x4011ca30 in TDirectory::Get () from /home/nmaa/root/lib/libCore.so > #17 0x8048b7f in main () at greed_dig.C:23 > > Does anybody have any ideas why it crashes in IsEqual() method? > > Thanks in advance > > Nuno Almeida >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:04 MET