Re: [ROOT] Problem with tree4.C

From: Remi Mommsen (remigius.mommsen@cern.ch)
Date: Sat Feb 28 2004 - 01:57:32 MET


Hi,

I hesitate to call it a 'solution' to this problem as I suspect that we 
hit (another) problem with the linker on Mac OS X. Anyway here it goes:

The culprit is the option passed to the linker '-Wl,-x' used 
(exclusively) in the $ROOTSYS/test/Makefile. If you remove it, tree4.C 
works as expected. The linker option '-x' causes to strip non-global 
symbols from the library, thus changing the relative location of the 
symbols. If for some obscure reason the relative addresses are not 
modified accordingly, you can end up in a different code segment. This 
would explain the nonsense sequence seen in the traceback. Thought this 
is pure speculation.

I put the patch file at 
http://www.slac.stanford.edu/~mommsen/test_makefile.patch or you can 
just change it by hand (it occurs 5 times!).

Have a nice weekend.

Cheers,
		Remi


On Feb 27, 2004, at 2:49 PM, cstrato wrote:

> Dear Philippe
>
> Did you try to reproduce this problem on a Macintosh?
> As Rene already mentioned, it does not appear on Linux.
>
> Best regards
> Christian
>
> Philippe Canal wrote:
>
>> Hi,
>> I am unable to reproduce this problem.
>> It does look very weird.  Make sure that the allowed stack size is
>> large enough (see the 'limit' shell command).
>> Try to run the process in the debugger and see exactly where the
>> problem is. Cheers,
>> Philippe
>> -----Original Message-----
>> From: owner-roottalk@pcroot.cern.ch
>> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Remi Mommsen
>> Sent: Thursday, February 26, 2004 6:11 PM
>> To: Rene Brun
>> Cc: cstrato; roottalk@pcroot.cern.ch
>> Subject: Re: [ROOT] Problem with tree4.C
>> Hi,
>> I can reproduce the problem on my Mac OS X 10.3.2, using root 
>> 4.00/02. I recompiled libEvent.so (deleting the EventDict 
>> beforehand). Here the traceback I get:
>> Date/Time:      2004-02-26 15:59:09 -0800
>> OS Version:     10.3.2 (Build 7D24)
>> Report Version: 2
>> Command: root.exe
>> Path:    /sw/bin/root.exe
>> Version: ??? (???)
>> PID:     20359
>> Thread:  0
>> Exception:  EXC_BAD_INSTRUCTION (0x0002)
>> Code[0]:    0x00000002
>> Code[1]:    0x0023afd0
>> Thread 0 Crashed:
>> 0   libEvent.so     	0x0023afd0 0x224000 + 0x16fd0
>> 1   libEvent.so     	0x00225c48 Track::Track[in-charge](float) + 0x10
>> 2   libEvent.so     	0x002256d4 Event::AddTrack(float, float) + 0x6c
>> 3   libEvent.so     	0x0022aea0 G__cpp_dllrevEventDict + 0x227c
>> 4   libCint.4.dylib 	0x251ebbbc G__call_cppfunc + 0x39c
>> 5   libCint.4.dylib 	0x251d99a8 G__interpret_func + 0x8e8
>> 6   libCint.4.dylib 	0x251b93ac G__getfunction + 0x1648
>> 7   libCint.4.dylib 	0x2524e69c G__getstructmem + 0xac4
>> 8   libCint.4.dylib 	0x25247ea4 G__getvariable + 0x66c
>> 9   libCint.4.dylib 	0x251ae14c G__getitem + 0x748
>> 10  libCint.4.dylib 	0x251ac89c G__getexpr + 0x7284
>> 11  libCint.4.dylib 	0x252028c8 G__exec_function + 0x1f0
>> 12  libCint.4.dylib 	0x25209fd0 G__exec_statement + 0x2548
>> 13  libCint.4.dylib 	0x25206e90 G__exec_loop + 0x2e4
>> 14  libCint.4.dylib 	0x25207660 G__exec_for + 0x1a4
>> 15  libCint.4.dylib 	0x25209d50 G__exec_statement + 0x22c8
>> 16  libCint.4.dylib 	0x25206e90 G__exec_loop + 0x2e4
>> 17  libCint.4.dylib 	0x25207660 G__exec_for + 0x1a4
>> 18  libCint.4.dylib 	0x25209d50 G__exec_statement + 0x22c8
>> 19  libCint.4.dylib 	0x251db7b8 G__interpret_func + 0x26f8
>> 20  libCint.4.dylib 	0x251b9a1c G__getfunction + 0x1cb8
>> 21  libCint.4.dylib 	0x251ae178 G__getitem + 0x774
>> 22  libCint.4.dylib 	0x251ac89c G__getexpr + 0x7284
>> 23  libCint.4.dylib 	0x252028c8 G__exec_function + 0x1f0
>> 24  libCint.4.dylib 	0x25209fd0 G__exec_statement + 0x2548
>> 25  libCint.4.dylib 	0x251db7b8 G__interpret_func + 0x26f8
>> 26  libCint.4.dylib 	0x251b9a1c G__getfunction + 0x1cb8
>> 27  libCint.4.dylib 	0x251ae178 G__getitem + 0x774
>> 28  libCint.4.dylib 	0x251ac89c G__getexpr + 0x7284
>> 29  libCint.4.dylib 	0x251a5150 G__calc_internal + 0x388
>> 30  libCint.4.dylib 	0x25210108 G__process_cmd + 0x20c0
>> 31  libCore.4.dylib 	0x257b82a0 TCint::ProcessLine(char const*, 
>> TInterpreter::EErrorCode*) + 0xb4
>> 32  libCore.4.dylib 	0x25745b38 TApplication::ProcessFile(char 
>> const*, int*) + 0x798
>> 33  libCore.4.dylib 	0x25745384 TApplication::ProcessLine(char 
>> const*, bool, int*) + 0x5d0
>> 34  libRint.4.dylib 	0x2a8e262c TRint::HandleTermInput() + 0x248
>> 35  libCore.4.dylib 	0x2580cb90 TUnixSystem::CheckDescriptors() + 0xe4
>> 36  libCore.4.dylib 	0x2580c35c TUnixSystem::DispatchOneEvent(bool) + 
>> 0xe4
>> 37  libCore.4.dylib 	0x2578c258 TSystem::InnerLoop() + 0x34
>> 38  libCore.4.dylib 	0x2578c1c4 TSystem::Run() + 0x98
>> 39  libRint.4.dylib 	0x2a8e2044 TRint::Run(bool) + 0x378
>> 40  root.exe        	0x000021a8 main + 0x7c
>> 41  root.exe        	0x00001e5c _start + 0x188 (crt.c:267)
>> 42  root.exe        	0x00001cd0 start + 0x30
>> PPC Thread State:
>>    srr0: 0x0023afd0 srr1: 0x0208d930                vrsave: 0x00000000
>>      cr: 0x44042288  xer: 0x00000004   lr: 0x00225f8c  ctr: 0x0023afd0
>>      r0: 0x00225f8c   r1: 0xbffccce0   r2: 0x00235c70   r3: 0x0260d194
>>      r4: 0x00000022   r5: 0x00000001   r6: 0x00000003   r7: 0x9011a468
>>      r8: 0x9011a468   r9: 0x00235c70  r10: 0x9000a468  r11: 0x0023d0a4
>>     r12: 0x0023afd0  r13: 0xbffd6320  r14: 0x00000000  r15: 0x00000355
>>     r16: 0xbffd6b40  r17: 0x253090e0  r18: 0x00000000  r19: 0x00000000
>>     r20: 0x000002fe  r21: 0x253ce68c  r22: 0x00000001  r23: 0x00000001
>>     r24: 0x00000001  r25: 0x0022ad64  r26: 0xbffd6b40  r27: 0x2530b828
>>     r28: 0x0260d120  r29: 0x0260d120  r30: 0x25d52ef0  r31: 0x00225c70
>> Binary Images Description:
>>      0x1000 -     0x8fff root.exe 	/sw/bin/root.exe
>>     0x44000 -    0x58fff libGX11TTF.so 	/sw/lib/root/libGX11TTF.so
>>     0x74000 -    0xb1fff libGX11.so 	/sw/lib/root/libGX11.so
>>    0x224000 -   0x23bfff libEvent.so 
>> 	/sw/share/root/tutorials/./../test/libEvent.so
>>    0x25f000 -   0x2a4fff libMinuit.so 	/sw/lib/root/libMinuit.so
>>    0x5b8000 -   0x6b9fff libGpad.so 	/sw/lib/root/libGpad.so
>>   0x1008000 -  0x1088fff libPostscript.so 
>> 	/sw/lib/root/libPostscript.so
>>   0x11d3000 -  0x12e9fff libGraf3d.so 	/sw/lib/root/libGraf3d.so
>>   0x139f000 -  0x1421fff libHtml.so 	/sw/lib/root/libHtml.so
>>   0x15ab000 -  0x16f2fff libTree.so 	/sw/lib/root/libTree.so
>>   0x2008000 -  0x235cfff libGui.so 	/sw/lib/root/libGui.so
>> 0x25190000 - 0x25307fff libCint.4.dylib 	/sw/lib/root/libCint.4.dylib
>> 0x25740000 - 0x25ccdfff libCore.4.dylib 	/sw/lib/root/libCore.4.dylib
>> 0x27ba0000 - 0x27d84fff libGraf.4.dylib 	/sw/lib/root/libGraf.4.dylib
>> 0x28190000 - 0x282abfff libGraf3d.4.dylib 
>> 	/sw/lib/root/libGraf3d.4.dylib
>> 0x29040000 - 0x29286fff libHist.4.dylib 	/sw/lib/root/libHist.4.dylib
>> 0x29d50000 - 0x29e6ffff libMatrix.4.dylib 
>> 	/sw/lib/root/libMatrix.4.dylib
>> 0x2a8e0000 - 0x2a953fff libRint.4.dylib 	/sw/lib/root/libRint.4.dylib
>> 0x2aac0000 - 0x2ac0bfff libTree.4.dylib 	/sw/lib/root/libTree.4.dylib
>> 0x77a66000 - 0x77b33fff libX11.6.dylib 	/usr/X11R6/lib/libX11.6.dylib
>> 0x8fd10000 - 0x8fd1bfff libXext.6.dylib 
>> 	/usr/X11R6/lib/libXext.6.dylib
>> 0x8fd21000 - 0x8fd2bfff libXpm.4.dylib 	/usr/X11R6/lib/libXpm.4.dylib
>> 0x8fe00000 - 0x8fe4ffff dyld 	/usr/lib/dyld
>> 0x90000000 - 0x90122fff libSystem.B.dylib 	/usr/lib/libSystem.B.dylib
>> 0x939d0000 - 0x939d4fff libmathCommon.A.dylib 
>> 	/usr/lib/system/libmathCommon.A.dylib
>> It works fine with root 3.10/02
>> Cheers,
>> 		Remi
>> On Feb 26, 2004, at 3:10 PM, Rene Brun wrote:
>>> Christian,
>>>
>>> I do not see any problem with tree4.C run with CINT or ACLIC.
>>> I tested it under windows and Linux.
>>>
>>> Did you build libEvent.so before executing this script?
>>> If yes, then the problem is MAC specific and I have no way to
>>> investigate.
>>>
>>> Rene
>>>
>>> On Thu, 26
>>> Feb 2004, cstrato wrote:
>>>
>>>
>>>> Dear Rooters
>>>>
>>>> After compiling Event I wanted to run the tutorial tree4.C.
>>>> Sorrowly I get:
>>>> root [0] .x tree4.C
>>>>
>>>>  *** Break *** illegal instruction
>>>> Root > Function tree4w() busy flag cleared
>>>> Function tree4() busy flag cleared
>>>>
>>>> Trying to compile it results in:
>>>> root [0] .L ../test/libEvent.so
>>>> root [1] .x tree4.C++
>>>> Info in <TUnixSystem::ACLiC>: creating shared library
>>>> /Users/cs/ROOT/root/tutorials/./tree4_C.so
>>>>
>>>>  *** Break *** illegal instruction
>>>>
>>>> Do I miss something or does tree4.C not run on:
>>>> ROOT 4.00/02 (1.Feb 20) on MacOS X 10.3.1.
>>>>
>>>> Best regards
>>>> Christian
>>>> _._._._._._._._._._._._._._._._
>>>> C.h.i.s.t.i.a.n S.t.r.a.t.o.w.a
>>>> V.i.e.n.n.a       A.u.s.t.r.i.a
>>>> _._._._._._._._._._._._._._._._
>>>>
>>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> If it's green, it's biology. If it stinks, it's chemistry. If it has
>> numbers, it's math. If it doesn't work, it's technology. (anonymous)
>> *********************************************************************
>> Remigius K. Mommsen                 e-mail: mommsen@slac.stanford.edu
>> University of California, Irvine       URL:    http://cern.ch/mommsen
>> c/o SLAC                             voice:        ++1 (650) 926-3595
>> 2575 Sand Hill Road #35                fax:        ++1 (650) 926-3882
>> Menlo Park, CA 94025, US              home:        ++1 (650) 233-9041
>> *********************************************************************
>
>


---------------------------------------------------------------------
Computers are like air-conditioners, they stop working properly when
you open Windows.                                         (Anonymous)

*********************************************************************
Remigius K. Mommsen                 e-mail: mommsen@slac.stanford.edu
University of California, Irvine       URL:    http://cern.ch/mommsen
c/o SLAC                             voice:        ++1 (650) 926-3595
2575 Sand Hill Road #35                fax:        ++1 (650) 926-3882
Menlo Park, CA 94025, US              home:        ++1 (650) 233-9041
*********************************************************************



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