Re: [ROOT] seg fault while trying to gMinuit->Write()

From: Edmond Offermann (edmondoffermann@yahoo.com)
Date: Mon Mar 29 2004 - 21:38:03 MEST


Hi John,

without more specifics it is hard to tell what
goes wrong .
If you insert your 2 lines in tutorials/Ifit.C
you can check that in principle it does what it is
supposed to do

Eddy

--- "Dr. John Krane" <jkrane@netzero.com> wrote:
> Hi,
> 
> Some time ago, I asked how to save intermediate
> steps during weeks-long 
> Minuit fits.  The suggested code was simply to do
> something like:
> 
>     TFile
> f("temp_minuit_intermediate_state.root","RECREATE");
>     gMinuit->Write();
> 
> 
> I have a class called "func_fit" that has a
> minimization method.  
> (Because TMinuit wants a bare function, I wrote a
> wrapper for the member 
> function called "dummy_func", visible in the stack
> trace below.)  My 
> class increments a counter every time the
> minimization method is called; 
> when I get zero for fmod(counter,10000), I try to
> write the TMinuit 
> object as above.  Unfortunately, I get the following
> stack trace.
> 
> I'm confused as to the source of the problem, which
> occurs deep in the 
> Streamer methods.  I'm hoping somebody knows what
> I'm doing wrong.  If 
> anyone has any advice or proposals for tests, I'll
> be very grateful.
> 
>     - John
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1091201184 (LWP 24100)]
> 0x4025d8a2 in ROOT::TObject_IsA(void const*) () from
> 
> /bin/root/lib/libCore.so
> (gdb) where
> #0  0x4025d8a2 in ROOT::TObject_IsA(void const*) ()
> from 
> /bin/root/lib/libCore.so
> #1  0x401619b4 in TClass::GetActualClass(void
> const*) const () from 
> /bin/root/lib/libCore.so
> #2  0x400ec4ff in TBuffer::WriteObjectAny(void
> const*, TClass*) () from 
> /bin/root/lib/libCore.so
> #3  0x4024f7cf in operator<<(TBuffer&, TObject
> const*) () from 
> /bin/root/lib/libCore.so
> #4  0x40e9d933 in TMinuit::Streamer(TBuffer&) ()
> from 
> /bin/root/lib/libMinuit.so
> #5  0x40101246 in TKey::TKey(TObject*, char const*,
> int) () from 
> /bin/root/lib/libCore.so
> #6  0x4010e293 in TObject::Write(char const*, int,
> int) () from 
> /bin/root/lib/libCore.so
> #7  0x0805297c in func_fit::minimize(int&, double*,
> double&, double*, 
> int) (this=0x8059a20, npar=@0xbfffd4f4,
> grad=0xd6f56d0, mychi2=@0xbfffd620,
>     params=0xd6ec0b0, iflag=4) at func_fit.cpp:395
> #8  0x080547d5 in dummy_func(int&, double*, double&,
> double*, int) 
> (npar=@0xbfffd4f4, grad=0xd6f56d0,
> mychi2=@0xbfffd620, params=0xd6ec0b0, 
> iflag=4)
>     at fit_idx.cpp:46
> #9  0x40e8458d in TMinuit::Eval(int, double*,
> double&, double*, int) () 
> from /bin/root/lib/libMinuit.so
> #10 0x40e8d827 in TMinuit::mnhess() () from
> /bin/root/lib/libMinuit.so
> #11 0x40e914b7 in TMinuit::mnmigr() () from
> /bin/root/lib/libMinuit.so
> #12 0x40e8a21a in TMinuit::mnexcm(char const*,
> double*, int, int&) () 
> from /bin/root/lib/libMinuit.so
> #13 0x40e8020f in TFitter::ExecuteCommand(char
> const*, double*, int) () 
> from /bin/root/lib/libMinuit.so
> #14 0x08055296 in main (argc=2, argv=0xbfffe874) at
> fit_idx.cpp:140
> #15 0x420156a4 in __libc_start_main () from
> /lib/tls/libc.so.6
> 
> 



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET