Hi, having switched to the new(er) Version 2.21/01 14 January 1999 on linux, I still get a segfault, both in macro and program, when I try to Read() from a file, see the code below. Attached is the data file. If I understood correctly, Read() makes a copy of the object in the file into the new program object, whereas TFile::Get() does not make a copy, so I have/want to use Read(). The file was written to with Write(). Thanks, Ulrich Macro: void test(const char *filename) { TFile* file = new TFile(filename, "read"); file.ls(); file.Map(); TPaveText *pt = new TPaveText(); // pt->Read("annotation"); // <- segfault !!!! pt = (TPaveText*) file->Get("annotation"); // <- works fine pt->Draw(); return; } Trace back from a program: Program received signal SIGABRT, Aborted. 0x40aee781 in __kill () (gdb) where #0 0x40aee781 in __kill () #1 0x40aee5af in raise (sig=6) at ../sysdeps/posix/raise.c:27 #2 0x40aef7bf in abort () at ../sysdeps/generic/abort.c:83 #3 0x408685ed in TUnixSystem::Abort () #4 0x408677fe in TUnixSystem::DispatchSignals () #5 0x4086699f in SigHandler () #6 0x40869560 in sighandler () #7 <signal handler called> #8 0x4037f5c7 in G__ClassInfo::IsValid () #9 0x403801c5 in G__ClassInfo::New () #10 0x407523ad in TClass::New () #11 0x402c5a8d in TBuffer::ReadObject () #12 0x4031e6c0 in operator>> () #13 0x404eea2a in TCollection::Streamer () #14 0x4050dd99 in TSeqCollection::Streamer () #15 0x4050d749 in TList::Streamer () #16 0x402c5ae9 in TBuffer::ReadObject () #17 0x4050d71c in operator>> () #18 0x405ab74d in TPaveText::Streamer () #19 0x403229e4 in TKey::Read () #20 0x40328095 in TObject::Read () #21 0x806b6bb in MainWindow::treatList (this=0xbffff7e4, id=2) at src/probe_mainwindow.cpp:526
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:32 MET